是否可以在每个表的每个字段中搜索Oracle中的特定值。
我想在不使用任何程序的情况下这样做..
我们可以通过查询来完成吗?
答案 0 :(得分:12)
你可以用一个查询来完成它,虽然它有点复杂。此查询将搜索当前架构中字符串'JONES'
select table_name,
column_name
from( select table_name,
column_name,
to_number(
extractvalue(
xmltype(
dbms_xmlgen.getxml(
'select count(*) c from ' || table_name ||
' where to_char(' || column_name || ') = ''JONES'''
)
),
'ROWSET/ROW/C'
)
) cnt
from (select utc.*, rownum
from user_tab_columns utc
where data_type in ('CHAR', 'VARCHAR2') ) )
where cnt >= 0
请注意,这是Laurent Schneider通过单个查询查询count the rows in every table的改编版本。