Oracle データベース全体で特定の文字列を見つけようとしています。
ここの別のトピックの例 ( Search All Fields In All Tables For A Specific Value (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;
/
「USING 'ALERT';」に近いと思います。何かを追加する必要があるが、何がわからないという行。
ありがとう