2022-01-25
Oracle 批量执行SQL 编译存储过程 ,怎么操作?
Oracle 批量执行SQL 编译存储过程 ,怎么操作?
我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
Oracle 批量执行SQL 编译存储过程 ,怎么操作?
可以用一段PLSQL BLOCK实现,例如下面就是编译当前用户所属的各个OBJECT(PACKAGE/TRIGGER/FUNCTION/TYPE等):
declare
ls_sql varchar2(100);
begin
DBMS_OUTPUT.ENABLE (buffer_size=>null);
for ca in (select object_name,object_type from user_procedures where procedure_name is null
union
select distinct object_name,object_type from user_procedures where
procedure_name is not null) loop
ls_sql:='alter '||ca.object_type||' '||ca.object_name||' '||'compile';
dbms_output.put_line(ls_sql);
execute immediate ls_sql;
end loop;
end;
/
评论
有用 1
你的sql是存在于多个外部文件?还是说只是要编译数据库已存在的对象而不去对代码进行修改?
如果是存在于多个外部文件,你把文件名做一个清单放到一个文本文件里,每个文件前面加上一个@,然后连接sqlplus后,@这一个文本文件就好了
评论
有用 0
墨值悬赏