我有一个数据库,每天在其中创建一个表来记录流程实例。这些表标记为MESSAGE_LOG_YYYYMMDD
目前,我想针对所有这些表顺序执行相同的QUERY。我在下面编写了PL / SQL,但陷入了第10行。如何针对此处的所有表成功执行SQL语句?
DECLARE CURSOR all_tables IS SELECT table_name FROM all_tables WHERE TABLE_NAME like 'MESSAGE_LOG_2%' ORDER BY TABLE_NAME ; BEGIN FOR msglog IN all_tables LOOP SELECT count(*) FROM TABLE msglog.TABLE_NAME ; END LOOP; END; /
http://download.oracle.com/docs/cd/B10500_01/appdev.920/a96590/adg09dyn.htm
基本上,在循环内部,构建一个表示要运行的查询的字符串,然后使用动态SQL运行该查询。
为了做任何有用的事情,您可能想要将记录插入临时表中,然后选择按日期降序排列。