如何在Oracle SQL中列出模式中的所有表?
SELECT ANY DICTIONARY
(SELECT | INSERT | UPDATE | DELETE) ANY TABLE
或者大锤,DBA角色。
使用任何一种,您都可以选择:
SELECT DISTINCT OWNER, OBJECT_NAME
FROM DBA_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
AND OWNER = '[some other schema]'
如果没有系统权限,您只能查看您已被授予某种级别访问权限的表格,无论是直接授予还是通过角色授予。
SELECT DISTINCT OWNER, OBJECT_NAME
FROM ALL_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
AND OWNER = '[some other schema]'
最后,您始终可以查询数据字典以获取自己的表信息,因为您对自己的表拥有不可撤销的权利(截至10g版本):
SELECT DISTINCT OBJECT_NAME
FROM USER_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
SELECT table_name from all_tables where owner = 'YOURSCHEMA';
您可以查询USER_TABLES
select TABLE_NAME from user_tables
SELECT DISTINCT(owner) from SYS.ALL_TABLES;
--然后你可以看到该所有者下的表:
SELECT table_name, owner from all_tables where owner like ('%XYZ%');
如果您以普通用户登录而没有DBA权限,则可以使用以下命令查看您自己模式的所有表和视图。
select * from tab;
select * from cat;
该命令将显示您模式中所有表的cat同义词用户目录的信息。
select * from user_tables;
(显示所有表格)
请试一下,将“?”替换为您的模式名称
select TABLE_NAME from INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA =?
AND TABLE_TYPE = 'BASE TABLE'
select TABLE_NAME from user_tables
select TABLE_NAME from user_tables;
%_TABLES
而是使用%_OBJECTS
之外,这是最完整的答案。 - APCDISTINCT
。在ALL_OBJECTS
中,owner, object_name
是唯一的。 - user330315