搜索所有表中的所有字段以获得特定值(Oracle)是否可以在Oracle中搜索每个表的每个字段中的特定值?有些表中有数百个有数千行的表,所以我知道这需要很长时间来查询。但是我唯一知道的是,我想要查询的字段的值是1/22/2008P09RR8. <我尝试使用下面的语句来根据我认为应该命名的内容找到一个适当的列,但是它没有返回结果。SELECT * from dba_objects
WHERE object_name like '%DTN%'这个数据库上绝对没有文档,我也不知道这个字段是从哪里提取的。有什么想法吗?
3 回答
米脂
TA贡献1836条经验 获得超3个赞
我尝试使用下面的语句来根据我认为应该命名的内容找到一个适当的列,但是它没有返回结果。 SELECT * from dba_objects WHERE object_name like '%DTN%'
SELECT owner, table_name, column_name FROM all_tab_columns WHERE column_name LIKE '%DTN%';
SET SERVEROUTPUT ON SIZE 100000 DECLARE match_count INTEGER; BEGIN FOR t IN (SELECT owner, table_name, column_name FROM all_tab_columns WHERE owner <> 'SYS' and data_type LIKE '%CHAR%') LOOP EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM ' || t.owner || '.' || t.table_name || ' WHERE '||t.column_name||' = :1' INTO match_count USING '1/22/2008P09RR8'; IF match_count > 0 THEN dbms_output.put_line( t.table_name ||' '||t.column_name||' '||match_count ); END IF; END LOOP; END; /
SELECT * FROM table1 WHERE column1 = 'value' OR column2 = 'value' OR column3 = 'value' ... ;
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
select column_name from all_tab_columns c, user_all_tables u where c.table_name = u.table_name;
v$session
v$sqlarea
添加回答
举报
0/150
提交
取消