Sql 如何找到特定值属于哪个模式或过程、表和列?
我有一个9位数的数字,比如234234,有没有办法在我的数据库中查找或检查它的外观,比如它属于哪个特定的模式或过程?并列出在pl/sql developer中具有该值的所有表和列。此查询仅搜索允许用户访问过程、函数、包等的存储对象。。。。你可以参考 不确定是否有一种方法可以在所有数据库表中搜索该值Sql 如何找到特定值属于哪个模式或过程、表和列?,sql,oracle,plsql,Sql,Oracle,Plsql,我有一个9位数的数字,比如234234,有没有办法在我的数据库中查找或检查它的外观,比如它属于哪个特定的模式或过程?并列出在pl/sql developer中具有该值的所有表和列。此查询仅搜索允许用户访问过程、函数、包等的存储对象。。。。你可以参考 不确定是否有一种方法可以在所有数据库表中搜索该值 SELECT * FROM all_source WHERE text LIKE '%234234234%'; --AND owner = 'SCHEMA_NAME'; 下面的块标识给定字
SELECT *
FROM all_source
WHERE text LIKE '%234234234%';
--AND owner = 'SCHEMA_NAME';
下面的块标识给定字符串在数据库中所有表中的存在
declare
num_rows number;
sql_text varchar2(250);
sql_info varchar2(100);
begin
dbms_output.enable(1000000);
for x in (select table_name, column_name from dba_tab_columns
where data_type in ('VARCHAR','VARCHAR2','CHAR')
and owner <> 'SYSTEM')
loop
sql_text:='select count(*) into :num_rows from SYSTEM.'||x.table_name||' where '||x.column_name||' like ''%234234234%''';
-- dbms_output.put_line (sql_text);
execute immediate sql_text into num_rows;
if num_rows>0
then
sql_info:='Table: '||x.table_name||' contains the string';
dbms_output.put_line (sql_info);
end if;
end loop;
end;
/
请特别参考PL/SQL代码以检查所有表中的给定值。