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

怎样查看我自己建的表的名称
SQL>Select owner,table_name from dba_tables where owner='SYSTEM';

结果:
OWNER TABLE_NAME
SYSTEM LOGMNR_UID$
SYSTEM LOGMNR_LOG$
.
.
.
SYSTEM TB1
SYSTEM AAA
结果把数据库里所有表的名称都显示出来了,我只想要自己建立的,即只想得到TB1,AAA其他的都不想显示,请问怎么写呢?谢谢



------解决方案--------------------
先弄清楚一个概念:oracle的逻辑结构
我用一句话概括:谁(用户)的东西(表,视图,索引等)放在哪里(表空间)

换句话说
一张表有自己的主人,即谁拥有了这张表

再看,SYSTEM也是一个用户,它有自己的表
SYSTEM是数据库建好就有的,包含了很多系统的东西
你不应该用SYSTEM用户建立你自己的应用表,如果你用SYSTEM用户建立了表
那么你建立的表属于SYSTEM用户
并非你说:“只想看到自己的表”
而实际上你的SQL并没有错,的确是“看到了自己的表”也就是SYSTEM自己的表
因为SYSTEM一出生(数据库建好后)就有很多表了,你只不过又加了一些而已
它们都是属于SYSTEM的

而你在建立自己的数据的时候,应该新建一个自己的用户
比如
create user test identified by test;

然后授予必要的权限,
grant connect to test;
grant resource to test;
alter user test default tablespace users;

然后用test用户连接到数据库
此时当前用户是test
再建表
然后查询 select table_name from user_tables