今天看oracle的文档,上面对ALL_ALL_TABLES的解释是Description of all object and relational tables accessible to the user。
但是我 selecet table_name from ALL_ALL_TABLES;得到的结果集中有一些表名是不能对它进行检索的。
例如:结果集:TABLE_NAME
----------
A
B
C但再select * from A 时,就会报:ora-00942:表或视图不存在?这是为什么啊?是我操作不对?还是A是个object不是表名,还是?
但是我 selecet table_name from ALL_ALL_TABLES;得到的结果集中有一些表名是不能对它进行检索的。
例如:结果集:TABLE_NAME
----------
A
B
C但再select * from A 时,就会报:ora-00942:表或视图不存在?这是为什么啊?是我操作不对?还是A是个object不是表名,还是?
------------------------------ ------------------------------
MDSYS SDO_GR_RDT_1
SQL> select count(1) from MDSYS.SDO_GR_RDT_1; COUNT(1)
----------
0
SQL> select count(1) from SDO_GR_RDT_1;
select count(1) from SDO_GR_RDT_1
*
ERROR at line 1:
ORA-00942: table or view does not exist
是因为在当前用户下没有A这张表
你需要在表名前加上表所属的用户名
告诉ORACLE去哪里找到这张表可以参考一下http://blog.csdn.net/wh62592855/archive/2009/09/27/4599333.aspx
如果一个用户下要访问另一个SCHEMA(用户)的表,要使用
SCHEMA名.表名 的形式访问(当然,还必须要用相应的权限)。如:当前用户test具有dba权限,其访问sys的表file$
select * from sys.file$;