Oracle 如何循环使用不同的模式并在每个模式上执行一些sql?

Oracle 如何循环使用不同的模式并在每个模式上执行一些sql?,oracle,session,schema,alter,Oracle,Session,Schema,Alter,我有一个例子,我有70个oracle模式,我必须在每个模式上执行相同的脚本 这将是实现这一目标的最佳方式 用光标可以吗 现在我正在和你一起做 ALTER SESSION SET current_schema = SCHEMA_1; ==== ALTER SESSION SET current_schema = SCHEMA_2; ==== ALTER SESSION SET current_schema = SCHEMA_3; ==== 我用我的脚本替换“==”,我用Notepad++来做,但

我有一个例子,我有70个oracle模式,我必须在每个模式上执行相同的脚本

这将是实现这一目标的最佳方式

用光标可以吗

现在我正在和你一起做

ALTER SESSION SET current_schema = SCHEMA_1;
====
ALTER SESSION SET current_schema = SCHEMA_2;
====
ALTER SESSION SET current_schema = SCHEMA_3;
====
我用我的脚本替换“==”,我用Notepad++来做,但我必须手动准备脚本,如果脚本很长,我必须将它拆分为多个块,没有新行,并对每个块进行替换


我想让这个过程自动化一点

我提供了以下半自动方式,它不会自动执行任务,但会减少搜索和替换

如果您使用的是SQL*Plus,则可以使用以下语法执行文件:

@myscriptfile.sql
如果希望对每个模式执行一次,可以通过查询字典生成代码:

select 'ALTER SESSION SET current_schema = ' || owner || ';
       @myscriptfile.sql'
  from dba_users
 where <your filter>;
选择'ALTER SESSION SET current_schema='| | owner | |';
@myscriptfile.sql'
来自dba_用户
哪里

然后,您只需在sqlplus中复制/粘贴该查询的结果。可能可以将其假脱机到文件并执行。

听起来很有趣。。。我试试看it@simon,您是否最终使用了上述方法?如果你觉得答案对你的问题有帮助,你会考虑接受这个答案吗?很抱歉,答案很有帮助