如何查看oracle数据库中的所有表
推荐于2017-12-16
展开全部
觉得你应该先弄清楚oracle的常规数据字典的结构,像9i里的常规数据字典中对象名称就有以USER,ALL,DBA为前缀的对象。
以USER为例,我们查该对象下有些什么表,就应该执行下列的语句:
SQL>select table_name from user_tables;
类似的,你可以进行替换。:)
如果你想查数据库中所有的表的话,可以查询
SELECT * FROM dba_tables
如果你想查询数据库中某个用户下的表的话,也可以登录这个用户,再查询:
SELECT * FROM USER_TABLES
要想导入外部sql语句可以用命令
sql >@e:\文件名.sql
如你想保存 select * from tablename;语句的结果,可以在sql*plus 里面这样:
SPOOL c:\test.sql //这是保存文件的位置
select * from tablename;
SPOOL OFF
以USER为例,我们查该对象下有些什么表,就应该执行下列的语句:
SQL>select table_name from user_tables;
类似的,你可以进行替换。:)
如果你想查数据库中所有的表的话,可以查询
SELECT * FROM dba_tables
如果你想查询数据库中某个用户下的表的话,也可以登录这个用户,再查询:
SELECT * FROM USER_TABLES
要想导入外部sql语句可以用命令
sql >@e:\文件名.sql
如你想保存 select * from tablename;语句的结果,可以在sql*plus 里面这样:
SPOOL c:\test.sql //这是保存文件的位置
select * from tablename;
SPOOL OFF
展开全部
1、如果你想查数据库中所有的表的话,可以查询
SELECT * FROM dba_tables
2、如果你想查询数据库中某个用户下的表的话,也可以登录这个用户,再查询:
SELECT * FROM USER_TABLES
3、要想导入外部sql语句可以用命令
sql >@e:文件名.sql
如你想保存 select * from tablename;语句的结果,可以在sql*plus 里面这样:
SPOOL c:test.sql //
这是保存文件的位置
select * from tablename;
SPOOL OFF
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
[TEST1@kokooa]>show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
ANNOUNCE BIN$Tjsm4dKqTnSo+Zynff5Pkg==$0 TABLE 2009-12-11:09:38:37
C BIN$/twfj/wKSX+xdc0kDtX6RQ==$0 TABLE 2009-11-16:14:44:12
C BIN$JBv3O0jyS5GEj3m+IrypVQ==$0 TABLE 2009-11-12:11:13:20
C BIN$K7Vs3JRYS3Wwhut51gRl7w==$0 TABLE 2009-11-11:11:07:43
D BIN$TC+wEm2pRR2thSXmqoLf/A==$0 TABLE 2009-11-12:11:10:27
T1 BIN$BnbNfsThTe2SLcFBSc71xA==$0 TABLE 2009-12-07:16:35:13
T1 BIN$8TMSXhUCR7Cr+bFDOe4EBA==$0 TABLE 2009-12-07:10:00:01
我们来看看两个结果到底是什么差别
[TEST1@kokooa]>select object_name from all_objects where object_type='TABLE' minus select table_name from all_tables;
OBJECT_NAME
------------------------------
XDB$ACL
XDB$ALL_MODEL
XDB$ANY
XDB$ANYATTR
XDB$ATTRGROUP_DEF
XDB$ATTRGROUP_REF
XDB$ATTRIBUTE
XDB$CHOICE_MODEL
XDB$COMPLEX_TYPE
XDB$CONFIG
XDB$ELEMENT
OBJECT_NAME
------------------------------
XDB$GROUP_DEF
XDB$GROUP_REF
XDB$SCHEMA
XDB$SEQUENCE_MODEL
XDB$SIMPLE_TYPE
16 rows selected.
总共多出16个表。而且这16个表并不是删除后放进回收站的表
我们分析这些“表”
[TEST1@kokooa]>desc XDB$ACL;
ERROR:
ORA-04043: object XDB$ACL does not exist
发现并不存在
[TEST1@kokooa]>conn / as sysdba
Connected.
[SYS@kokooa]>desc XDB$ACL;
ERROR:
ORA-04043: object XDB$ACL does not exist
换到sysdba也不存在
前缀都是XDB$,你网上搜索,与XML有关。而且注意看后缀,都是一些数据库的关键字。
XML Database 好像是这个意思 安装的时候有个选项可以将它去掉
我所在公司的系统有个导入导出数据的功能,用的是XML。或许就跟这个有关。
oracle很多东西我们都用不上 但是安装的时候没有去掉,具体是怎么回事我也不是很清楚。只知道这是另外一个分支 仔细研究起来的话 也是会很麻烦的
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
ANNOUNCE BIN$Tjsm4dKqTnSo+Zynff5Pkg==$0 TABLE 2009-12-11:09:38:37
C BIN$/twfj/wKSX+xdc0kDtX6RQ==$0 TABLE 2009-11-16:14:44:12
C BIN$JBv3O0jyS5GEj3m+IrypVQ==$0 TABLE 2009-11-12:11:13:20
C BIN$K7Vs3JRYS3Wwhut51gRl7w==$0 TABLE 2009-11-11:11:07:43
D BIN$TC+wEm2pRR2thSXmqoLf/A==$0 TABLE 2009-11-12:11:10:27
T1 BIN$BnbNfsThTe2SLcFBSc71xA==$0 TABLE 2009-12-07:16:35:13
T1 BIN$8TMSXhUCR7Cr+bFDOe4EBA==$0 TABLE 2009-12-07:10:00:01
我们来看看两个结果到底是什么差别
[TEST1@kokooa]>select object_name from all_objects where object_type='TABLE' minus select table_name from all_tables;
OBJECT_NAME
------------------------------
XDB$ACL
XDB$ALL_MODEL
XDB$ANY
XDB$ANYATTR
XDB$ATTRGROUP_DEF
XDB$ATTRGROUP_REF
XDB$ATTRIBUTE
XDB$CHOICE_MODEL
XDB$COMPLEX_TYPE
XDB$CONFIG
XDB$ELEMENT
OBJECT_NAME
------------------------------
XDB$GROUP_DEF
XDB$GROUP_REF
XDB$SCHEMA
XDB$SEQUENCE_MODEL
XDB$SIMPLE_TYPE
16 rows selected.
总共多出16个表。而且这16个表并不是删除后放进回收站的表
我们分析这些“表”
[TEST1@kokooa]>desc XDB$ACL;
ERROR:
ORA-04043: object XDB$ACL does not exist
发现并不存在
[TEST1@kokooa]>conn / as sysdba
Connected.
[SYS@kokooa]>desc XDB$ACL;
ERROR:
ORA-04043: object XDB$ACL does not exist
换到sysdba也不存在
前缀都是XDB$,你网上搜索,与XML有关。而且注意看后缀,都是一些数据库的关键字。
XML Database 好像是这个意思 安装的时候有个选项可以将它去掉
我所在公司的系统有个导入导出数据的功能,用的是XML。或许就跟这个有关。
oracle很多东西我们都用不上 但是安装的时候没有去掉,具体是怎么回事我也不是很清楚。只知道这是另外一个分支 仔细研究起来的话 也是会很麻烦的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SQL> Select object_name from all_objects where object_name not in(select table_name from all_tables)
and object_type='TABLE';
OBJECT_NAME
------------------------------------------------------------
BIN$+7S3khPUTSKjreZoB9gknA==$0
BIN$RIQnjSwzSEKk/t2um6mDkg==$0
发现了吗,这2个是已经DROP了的表,放在recyclebin中,原来叫EMP
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE
---------------- ------------------------------ ------------
EMP BIN$+7S3khPUTSKjreZoB9gknA==$0 TABLE
EMP BIN$RIQnjSwzSEKk/t2um6mDkg==$0 TABLE
经实验,表明ALL_TABLES中不含被删除但还没清空的表,而ALL_OBJECTS中则包含所有。
我也是看到你的提问才发现的:)
and object_type='TABLE';
OBJECT_NAME
------------------------------------------------------------
BIN$+7S3khPUTSKjreZoB9gknA==$0
BIN$RIQnjSwzSEKk/t2um6mDkg==$0
发现了吗,这2个是已经DROP了的表,放在recyclebin中,原来叫EMP
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE
---------------- ------------------------------ ------------
EMP BIN$+7S3khPUTSKjreZoB9gknA==$0 TABLE
EMP BIN$RIQnjSwzSEKk/t2um6mDkg==$0 TABLE
经实验,表明ALL_TABLES中不含被删除但还没清空的表,而ALL_OBJECTS中则包含所有。
我也是看到你的提问才发现的:)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from all_tables
all_tables是所有能访问,包括其它用户的,如果要查看当前用户用user_tables
all_tables是所有能访问,包括其它用户的,如果要查看当前用户用user_tables
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询