我想编写一个存储过程来获取模式中所有具有“id”列的表,一旦有了这些表,我就想输出每个表中唯一id的计数。
前任。
表1
表2
输出:
我已经实现了后一部分,但是第一部分我遇到了困难。以下是我目前的剧本:
create or replace PROCEDURE get_id_counts
IS
BEGIN
FOR table_n in (SELECT * FROM dba_tables) LOOP
EXECUTE IMMEDIATE 'SELECT ID, COUNT(*) FROM MySchema.' || table_n.table_name || ' GROUP BY ID';
END LOOP;
END;
/
execute get_id_counts;
当前我收到错误:“%s:无效标识符”,我假设这是由于不是架构中的所有表都有列“id”造成的
1条答案
按热度按时间uurv41yg1#
假设您的数据库是oracle
使用
dba_tab_columns
仅获取具有id列的因此,将您的查询从
到