17,377
社区成员
发帖
与我相关
我的任务
分享
---最好分析下表
SQL> create table tb_joe(name varchar2(10))
2 /
表已创建。
SQL> insert into tb_joe values('testtest');
已创建 1 行。
SQL> commit
2 /
提交完成。
SQL> declare
2 v_tbname varchar2(30);
3 v_colname varchar2(30);
4 num number;
5 str varchar2(1000);
6 begin
7 for i in (select a.table_name,a.column_name,num_rows from user_tab_cols a,user_tables b
8 where a.table_name=b.table_name and num_rows<101 and data_type in('VARCHAR','VARCHAR2','CHAR'))
9 LOOP
10 execute immediate 'select count(*) from '||i.table_name||' where instr('||i.column_name||',''testtest'')>0' into num;
11 if num>0 then
12 dbms_output.put_line('表名 '||i.table_name||' '||i.column_name);
13 end if;
14 end loop;
15 end;
16 /
表名 TB_JOE NAME
PL/SQL 过程已成功完成。