小编典典

遍历多个表以执行相同的查询

sql

我有一个数据库,每天在其中创建一个表来记录流程实例。这些表标记为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;
/

阅读 169

收藏
2021-03-23

共1个答案

小编典典

http://download.oracle.com/docs/cd/B10500_01/appdev.920/a96590/adg09dyn.htm

基本上,在循环内部,构建一个表示要运行的查询的字符串,然后使用动态SQL运行该查询。

为了做任何有用的事情,您可能想要将记录插入临时表中,然后选择按日期降序排列。

2021-03-23