在整个oracle数据库中搜索部分字符串

我正在尝试在整个Oracle数据库中查找特定的字符串。

我已经在此处的另一个主题(在所有表中的所有字段中搜索特定值(Oracle))中遵循了该示例,并且当字符串是一列中的整个值时,它就可以正常工作。但是我需要搜索字符串作为列的一部分。

例如,如果我搜索“ Alert”,则应返回所有带有“ Alert”的列和所有带有“ Alert_QB”的列

这是当前的查询:

DECLARE

match_count INTEGER;

BEGIN

FOR t IN (SELECT owner, table_name, column_name

FROM all_tab_columns

WHERE data_type LIKE '%CHAR%') LOOP

EXECUTE IMMEDIATE

'SELECT COUNT(*) FROM ' || t.owner || '.' || t.table_name ||

' WHERE '||t.column_name||' = :1'

INTO match_count

USING 'ALERT';

EXCEPTION when others then

null;

end;

IF match_count > 0 THEN

dbms_output.put_line( t.table_name ||' '||t.column_name||' '||match_count );

END IF;

END LOOP;

END;

/

我认为它靠近“使用’ALERT’;” 行,我需要添加一些东西,但是我不知道是什么。

谢谢

回答:

更改为

EXECUTE IMMEDIATE

'SELECT COUNT(*) FROM ' || t.owner || '.' || t.table_name ||

' WHERE '||t.column_name||' like :1'

INTO match_count

USING '%ALERT%';

以上是 在整个oracle数据库中搜索部分字符串 的全部内容, 来源链接: utcz.com/qa/405977.html

回到顶部