【发布时间】:2017-03-17 13:52:43
【问题描述】:
我想查找名称为 %ABC% 但不包括 table_name:s 的所有表,其中包含任何名称为 %USER% 的列
我尝试将 dba_tables 与 dba_tab_columns 加入为
SELECT DT.OWNER, DT.TABLE_NAME
FROM DBA_TABLES DT
INNER JOIN DBA_TAB_COLUMNS DTC
ON DT.TABLE_NAME = DTC.TABLE_NAME AND DT.OWNER = DTC.OWNER
WHERE DT.TABLE_NAME LIKE '%ABC%'
如果表有像 %USER% 这样的列,则根本不应该返回 table_name,所以添加
AND DTC.COLUMN_NAME NOT LIKE '%USER%'
不好,因为它只会过滤掉 %USER% 列而不是整个表
【问题讨论】:
-
添加一些示例表数据和预期结果 - 以及格式化文本。