在所有模式下运行query



大家好,我是Oracle的新手。我有一个查询,我需要对数据库中的所有模式运行,比如(scott,hr,example等),数据库中有表事务。谁能告诉我最好的方法是什么?我在数据库中有大约30个模式,我不能通过对所有模式运行这个来做到这一点,因为它是耗时的。我认为plsql将是最好的方式来做到这一点,但我没有足够的知识来做到这一点。

query example:  
select sum(amount)
from abc.transaction t1
where t1.payment_method ='transfer' 
and TO_char(t1.result_time_stamp,'MONTH') = TO_char(sysdate,'MONTH')
order by t1.time_stamp asc;

提前感谢你的帮助。

我不确定您想要运行哪种类型的查询,如果它们需要一次从所有表中聚合数据,或者如果您想查看并在每个表上运行命令,但是这里有一些应该让您开始。这是一个游标,将找到所有名为"transaction"的表。如果这些是特别的查询,我只需从下面的游标复制表名输出,编写一个基本查询并将其保存在某个地方,或者将其放入某种过程中。然后修改并在将来重用它。

DECLARE
CURSOR c1
IS  
SELECT owner, table_name
  FROM all_tables
  WHERE upper(table_name) = 'TRANSACTION';
BEGIN
FOR c1rec in c1
LOOP
    dbms_output.put_line(c1rec.owner||'.'||c1rec.table_name);
END LOOP;
END;

最新更新