您好,我是Oracle的新手。我有一个查询,我需要对数据库中的所有模式运行,让我们说(scott,hr,exampleetc)在数据库中有表事务。 有人可以帮助什么是最好的方法吗?我在数据库中有大约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;
谢谢你的帮助..
答案 0 :(得分:0)
我不确定你想要运行什么样的查询,如果他们需要一次聚合所有表中的数据,或者你想查看并在每个表上运行一个命令,但这里有一些应该让你开始。它是一个游标,可以找到所有名为“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;