如何在 oracle sql 中列出具有特定列的模式中的所有表?
How do I list all tables in a schema having specific column in oracle sql?
我找到了使用此查询的所有表的列表 -
SELECT DISTINCT OBJECT_NAME
FROM USER_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
但我需要列出所有具有列名 starttime_date
或 starttime
的表。
您可以使用 USER_TAB_COLS
视图。
例如,
SQL> select table_name, column_name, data_type from user_tab_cols where column_name ='DEPTNO';
TABLE_NAME COLUMN_NAM DATA_TYPE
---------- ---------- ----------
DEPT DEPTNO NUMBER
EMP DEPTNO NUMBER
SQL>
你可以试试,
select *
from user_tab_cols
where column_name in ('STARTTIME_DATE', 'STARTTIME');
首先,您连接任何架构然后您可以尝试此 SQL。
例如:
SELECT TABLE_NAME,
COLUMN_NAME,
DATA_TYPE,
DATA_LENGTH,
NULLABLE
FROM all_tab_columns
WHERE OWNER = 'schema_name' and column_name = 'column_name';
我找到了使用此查询的所有表的列表 -
SELECT DISTINCT OBJECT_NAME
FROM USER_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
但我需要列出所有具有列名 starttime_date
或 starttime
的表。
您可以使用 USER_TAB_COLS
视图。
例如,
SQL> select table_name, column_name, data_type from user_tab_cols where column_name ='DEPTNO';
TABLE_NAME COLUMN_NAM DATA_TYPE
---------- ---------- ----------
DEPT DEPTNO NUMBER
EMP DEPTNO NUMBER
SQL>
你可以试试,
select *
from user_tab_cols
where column_name in ('STARTTIME_DATE', 'STARTTIME');
首先,您连接任何架构然后您可以尝试此 SQL。
例如:
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH, NULLABLE FROM all_tab_columns WHERE OWNER = 'schema_name' and column_name = 'column_name';