SQL语句找出哪个架构拥有Oracle表?

时间:2015-12-14 01:30:46

标签: sql oracle schema

什么是SQL语句来找出哪个Schema拥有Oracle表?

3 个答案:

答案 0 :(得分:1)

SELECT OWNER FROM DBA_TABLES WHERE TABLE_NAME = '<your table>'

如果您没有权限DBA_TABLES使用ALL_TABLES

答案 1 :(得分:1)

要查看有关数据库中任何对象的信息,请在USER_TABLES中使用:

select * from all_objects where object_name = 'USER_TABLES';

OWNER OBJECT_NAME       OBJECT_ID   OBJECT_TYPE   CREATED   LAST_DDL_TIME
SYS   USER_TABLES       3922        VIEW          24-MAY-13 24-MAY-13

USER_TABLES是一个字典视图。所有字典视图都归SYS所有。

答案 2 :(得分:0)

以下是查询:

SELECT TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME='<TABLE_NAME>'; -- There is no owner column in this view
SELECT OWNER, TABLE_NAME FROM ALL_TABLES WHERE OWNER='<OWNER_NAME>' AND TABLE_NAME='<TABLE_NAME>';
SELECT OWNER, TABLE_NAME FROM DBA_TABLES WHERE OWNER='<OWNER_NAME>' AND TABLE_NAME='<TABLE_NAME>';

您还可以使用OBJECT_TYPE='TABLE' and OWNER= '<OWNER_NAME>' and OBJECT_NAME='<TABLE_NAME>'

查询USER_OBJECTS,ALL_OBJECTS,DBA_OBJECTS

有3个视图,可以提供该信息:

  • USER_TABLES,如果登录架构是表的所有者
  • ALL_TABLES,如果登录架构对表或表的所有者具有权限或具有SELECT_CATALOG角色
  • DBA_TABLES,如果登录架构具有SELECT_CATALOG角色或具有SELECT_CATALOG角色的任何其他角色