我在oracle中有一个表列表,其值如下
参考表1
System(Col 1) Description(Col 2)
ABC abba
PQR puqar
XYZ end
ABC abba
ABC abba
PQR puqar
我想按系统(第1列)检索以ref开头的所有表的记录计数
TableName ABC PQR XYZ
REF_table1 3 2 1
REF_table2 6 2 5
REF_table3 4 3 7
我试过一个问题,但没有成功
DECLARE
nbr NUMBER := 0;
total NUMBER := 0;
stmt VARCHAR2(100):= 'SELECT COUNT(System),System FROM ';
BEGIN
-- Iterate over all tables that fit your criteria
FOR i IN (SELECT table_name FROM all_tables t WHERE /*t.owner = '#####' and*/ t.table_name LIKE 'REF_%' and t.owner ='someone') LOOP
nbr := 0;
EXECUTE IMMEDIATE stmt || i.table_name INTO nbr;
total := total + nbr;
END LOOP;
dbms_output.put_line('total : '||total);
END;
1条答案
按热度按时间evrscar21#
包含pivot子句的select语句,pivot子句由具有名称的列组成
col1
,col2
以及col3
可能很适合你的情况。这样,您就可以通过数组变量()的贡献,在动态查询中循环这些列及其索引col OWA.NC_ARR
) :演示