你在SQL*PLUS WorkSheet中是不是用的 CONN Gzd2003/password AS SYSDBA 连接的?
我没用过9i,只用过8.05,8.15,8.17根据经验,应该是没有建立同义词所致请为该表建立同义词,例子如下 Create Public Synonym SPBUMEN For SHENPI.SPBUMEN;
1.同义词是什么什么概念? 2.Create Public Synonym SPBUMEN For SHENPI.SPBUMEN;中的For SHENPI.SPBUMEN是什么意思? 3.在SQL*PLUS WorkSheet中我是用CONN Gzd2003/password AS SYSDBA连接的.
同义词也是数据库的对象,说白了也就是用户为Oracle表建立另外的名字。比如说对于一个表a,如果它的拥有者用语句访问它:select * from a;这是可以的。可是如果别的用户(不是a的拥有者)也用select * from a;来访问a,Oracle将不知道该干什么。 但是如果a的拥有者为该表定义了一个同义词,则别的用户就可以通过这个同义词来访问a。同义词分为私用同义词和公有同义词。对于语句Create Public Synonym SPBUMEN For SHENPI.SPBUMEN;是说定义了一个公用同义词SPBUMEN,For 之后的部分说明任何Oracle用户都可用SPBUMEN引用表SHENPI.SPBUMEN。你出现的问题会不会是你登录的时候用的身份不对呢?
你可以试试select * from "techer"
select * from "techer"也不行,奇怪的问题.
是很怪异啊。你直接在tab表里找找看啊。select * from tab where tname like '%te%'看看能否找到
SQL>select owner,table_name,tablespace_name from all_all_tables SQL>where table_name='STUDENT';你先用此语句查看一下该表究竟属于哪个用户和表空间,再试试
select owner,table_name,tablespace_name from all_all_tables where table_name='STUDENT';的结果是 OWNER:Gzd2003(正是我用Gzd2003用户在WorkSheet中不能显示的表) TABLESPACE_NAME:USERSselect * from tab where tname like '%te%'不能找到表
CONN Gzd2003/password AS SYSDBA
连接的?
Create Public Synonym SPBUMEN For SHENPI.SPBUMEN;
2.Create Public Synonym SPBUMEN For SHENPI.SPBUMEN;中的For SHENPI.SPBUMEN是什么意思?
3.在SQL*PLUS WorkSheet中我是用CONN Gzd2003/password AS SYSDBA连接的.
但是如果a的拥有者为该表定义了一个同义词,则别的用户就可以通过这个同义词来访问a。同义词分为私用同义词和公有同义词。对于语句Create Public Synonym SPBUMEN For SHENPI.SPBUMEN;是说定义了一个公用同义词SPBUMEN,For 之后的部分说明任何Oracle用户都可用SPBUMEN引用表SHENPI.SPBUMEN。你出现的问题会不会是你登录的时候用的身份不对呢?
SQL>where table_name='STUDENT';你先用此语句查看一下该表究竟属于哪个用户和表空间,再试试
OWNER:Gzd2003(正是我用Gzd2003用户在WorkSheet中不能显示的表)
TABLESPACE_NAME:USERSselect * from tab where tname like '%te%'不能找到表