过程如下:
1.在user_tab_columns找出所有含有bu_cd的表的名字。
select table_name,column_name
from user_tab_columns
where column_name= 'BU_CD '
结果如下:
--------------------------------------
table_name column_name
--------------------------------------
ACCESSAUTHORITYMST BU_CD
ADDON_USE_MST BU_CD
APLVERSION_MST BU_CD
AUTONO_MG BU_CD
2.然后再查出以上表中bu_cd为10的纪录条数。
3.以上过程要求用一个sql语句实现。
望高手指点?多谢!!!
★★★★★★★★★★★★★★★★★★★★★★★★★
应用如下方法,现在已经可以将满足要求数据打印出来了,
问题是,怎么通过程序进行实现,把数据放到数据集里去呢?
运用临时表不太好,有没有其他的方法。
**********カーソ*****/仮表********************************
declare
num varchar2(10);
cur sys_refcursor;
begin
for rec in (select table_name,column_name
from user_tab_columns
where column_name='BU_CD')
loop
open cur for 'select count(*) from '|| rec.table_name ||' where '|| rec.column_name||'=''10''';
--dbms_output.put_line('select count(*) from '|| rec.table_name ||' where '|| rec.column_name||'=''10''');
--dbms_output.put_line(to_char(cur%rowcount));
fetch cur into num;
dbms_output.put_line(rec.table_name||' '||num);
insert into tmp_test values(rec.table_name,num);
close cur;
end loop;
end;
---------------------------------------------------------------
select * from tmp_test
delete from tmp_test
---------------------------------------------------------------