Oracle如何根据某个值查找其在哪个表
Oracle如何根据某个值查找其在哪个表
·
Oracle如何根据某个字段的值查询该字段在哪个表里,存储过程sql如下:
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 'string to search here...';
IF match_count > 0 THEN
dbms_output.put_line( t.table_name ||' '||t.column_name||' '||match_count );
END IF;
END LOOP;
END;
/
这里需要改或者可以改的地方:
1. 如果明确的知道schema或者owner是谁,可以直接把下面替换为具体的owner,否则就是整个所有schema扫描:
WHERE owner <> 'SYS' 替换为 WHERE owner = 'ENTER_USERNAME_HERE'
2. data_type LIKE '%CHAR%' 替换为其他类型
3. USING 'string to search here...'; 这里输入你要查找的字符串值
******** 注意 **********
oracle的对大小写敏感的
更多推荐
已为社区贡献10条内容
所有评论(0)