怎么查询oracle一个数据库中包含有某个特定值的所有表及字段名
如何查询oracle一个数据库中包含有某个特定值的所有表及字段名?
现在有这样的需求,需要将oracle 一个数据库中的所有表,所有字段,里包含有一个特定的值比如:“test”的 表\字段查询出来?怎么写语句?谢谢了!
------解决方案--------------------
select * from user_col_comments
where lower(table_name) like '%test%' ;
select * from user_col_comments
where lower(column_name) like '%test%' ;
------解决方案--------------------
楼主要查询的是表里面的值
1楼的是列名啊
------解决方案--------------------
怎么在某Schame下搜索数据:
比如:在scott用户下面,搜索含有'TEST'的数据的表和字段
穷举法:
declare
v_Sql varchar2(2000);
v_count number;
begin
for xx in (select t.OWNER, t.TABLE_NAME, t.COLUMN_NAME
from dba_tab_columns t
where t.OWNER = 'SCOTT') loop
begin
v_Sql := 'select count(1) from '
------解决方案--------------------
xx.owner
------解决方案--------------------
'.'
------解决方案--------------------
xx.table_name
------解决方案--------------------
' where '
------解决方案--------------------
xx.column_name
------解决方案--------------------
' like ''%TEST%'' ';
execute immediate v_Sql
into v_count;
if (v_count >= 1) then
dbms_output.put_line(xx.table_name
------解决方案--------------------
':'
------解决方案--------------------
xx.column_name);
end if;
exception
when others then
null;
end;
end loop;
end;
现在有这样的需求,需要将oracle 一个数据库中的所有表,所有字段,里包含有一个特定的值比如:“test”的 表\字段查询出来?怎么写语句?谢谢了!
------解决方案--------------------
select * from user_col_comments
where lower(table_name) like '%test%' ;
select * from user_col_comments
where lower(column_name) like '%test%' ;
------解决方案--------------------
楼主要查询的是表里面的值
1楼的是列名啊
------解决方案--------------------
怎么在某Schame下搜索数据:
比如:在scott用户下面,搜索含有'TEST'的数据的表和字段
穷举法:
declare
v_Sql varchar2(2000);
v_count number;
begin
for xx in (select t.OWNER, t.TABLE_NAME, t.COLUMN_NAME
from dba_tab_columns t
where t.OWNER = 'SCOTT') loop
begin
v_Sql := 'select count(1) from '
------解决方案--------------------
xx.owner
------解决方案--------------------
'.'
------解决方案--------------------
xx.table_name
------解决方案--------------------
' where '
------解决方案--------------------
xx.column_name
------解决方案--------------------
' like ''%TEST%'' ';
execute immediate v_Sql
into v_count;
if (v_count >= 1) then
dbms_output.put_line(xx.table_name
------解决方案--------------------
':'
------解决方案--------------------
xx.column_name);
end if;
exception
when others then
null;
end;
end loop;
end;