gpt4 book ai didi

sql - 在 Oracle 的整个架构的所有字段中搜索给定字符串

转载 作者:行者123 更新时间:2023-12-04 22:25:13 26 4
gpt4 key购买 nike

我们如何在 Oracle 的整个架构的所有字段中搜索给定的字符串?

是否有一个 sql 脚本可以在 Oracle 中执行上述操作?如果是,如何?

我们可以通过任何其他脚本来完成吗?

最佳答案

ALL_TAB_COLUMNS ”是一个系统表,具有所有表列数据类型等。

USER_TAB_COLUMNS ”是一个系统表,具有所有表列数据类型等(所有者是当前用户)。 (感谢雷内)

一个例子:

 SET SERVEROUTPUT ON SIZE 100000 -- maybe you have a lot of table and columns

DECLARE
matches INTEGER;
BEGIN
FOR columns IN (SELECT table_name, column_name FROM user_tab_columns where data_type = 'VARCHAR2') LOOP

EXECUTE IMMEDIATE
'SELECT COUNT(*) FROM '||t.table_name||' WHERE instr('||t.column_name||' , :1) > 0'
INTO matches
USING 'What you search';

IF matches > 0 THEN
dbms_output.put_line( t.table_name ||' '||t.column_name||' '||matches );
END IF;

END LOOP;

END;
/

此查询将输出 table_name '' column_name'' 和计数,如果您有标准列名和表名,则可以将查询更改为 IF columns > 0 然后在循环中编写查询 UNION 并返回游标,或返回一个表,

关于sql - 在 Oracle 的整个架构的所有字段中搜索给定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5562131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com