Oracle 如何循环使用不同的模式并在每个模式上执行一些sql?
我有一个例子,我有70个oracle模式,我必须在每个模式上执行相同的脚本 这将是实现这一目标的最佳方式 用光标可以吗 现在我正在和你一起做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++来做,但
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,您是否最终使用了上述方法?如果你觉得答案对你的问题有帮助,你会考虑接受这个答案吗?很抱歉,答案很有帮助