我有一个案例,我有70个oracle模式,我必须在每个
上执行相同的脚本这将是实现这一目标的最佳方式。
是否可以使用CURSOR?
现在我正在用
做这件事ALTER SESSION SET current_schema = SCHEMA_1;
====
ALTER SESSION SET current_schema = SCHEMA_2;
====
ALTER SESSION SET current_schema = SCHEMA_3;
====
我用我的脚本替换“====”,我用Notepad ++做它但我必须手动准备脚本,如果脚本很长,我必须将它分成多个块而不需要新的行和为每个块做一个替换
我想再多一点自动化。
答案 0 :(得分:4)
我提供以下半自动方式,不会自动执行您的任务,但会减少搜索和替换。
如果您使用的是SQL * Plus,则可以使用以下语法执行文件:
@myscriptfile.sql
如果您希望为每个架构执行一次,则可以通过查询字典来生成代码:
select 'ALTER SESSION SET current_schema = ' || owner || ';
@myscriptfile.sql'
from dba_users
where <your filter>;
然后你只需要在sqlplus中复制/粘贴该查询的结果。可能会将其假脱机到文件并执行它。