日期:2014-05-17  浏览次数:20828 次

Oracle查询问题求助
通过toad连接oracle数据库,无意中发现的一个问题,个人搜索资料未果,向广大朋友请教,问题描述:
执行语句 select * from Tzj_dss(简单的查询) 通过toad连接数据库,用户以sysdba的身份登录,则报错“ORA-00942: 表或视图不存在”,但事实上数据库中存在该表!还是通过toad连接数据库,这次用户以normal身份登录,执行同样的语句就可以查询到,直接通过sql/plus也可以查询得到,请教一下大家,这个是怎么回事?自己搜的答案,有的说是权限的问题,但是在创建用户的时候直接赋予的dba权限,希望大家能帮小弟一下,不胜感激
oracle toad

------解决方案--------------------
select * from 登录名.Tzj_dss 试下
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

select * from 登录名.Tzj_dss 试下
我按照你说的方法可以查询到,请问一下,这是什么原因呢?
select * from Tzj_dss这样默认会是(select * from 当前登录用户名.Tzj_dss),而如果Tzj_dss表不是当前用户所有的就会报错。
表到底是哪个用户的,如果是normal用户的,以Normal用户登录查自己的表直接可以select * from Tzj_dss,sysdba用户登录查看就要select * from Normal用户名.Tzj_dss。

朋友,按照你解释的意思,是不是可以这样理解:两次登录使用的都是同一个用户名(同一个用户),只是以不同的身份登录了,这意味着是两个用户?我按照你说的select * from dba_objects where object_name='TZJ_DSS_CODES'进行了查询,得到的信息显示,表的owner_name就是登录的用户名,只是两次身份不同,并且不管用那种身份登录,都可以在查看表的面板中看到tzj_dss_codes这张表,请问这又如何理解呢?通过sql/plus就能查询到表信息,这又是为何呢?

两次登录使用的都是同一个用户名,这样的话,我就没法解释了