暂无图片
Oracle 批量执行SQL 编译存储过程 ,怎么操作?
我来答
分享
Hklopp
2022-01-25
Oracle 批量执行SQL 编译存储过程 ,怎么操作?

Oracle 批量执行SQL 编译存储过程 ,怎么操作?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
Thomas

可以用一段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
打赏 0
暂无图片
Hklopp
题主
2022-01-25
感谢
DarkAthena

你的sql是存在于多个外部文件?还是说只是要编译数据库已存在的对象而不去对代码进行修改?

如果是存在于多个外部文件,你把文件名做一个清单放到一个文本文件里,每个文件前面加上一个@,然后连接sqlplus后,@这一个文本文件就好了

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
设置cursor_sharing=force后,导致substr函数索引无法被使用,有什么好的办法吗?
回答 1
已采纳
请楼主看下这个帖子:https://www.cnblogs.com/muzisanshi/p/15637546.html
oracle启动错误
回答 3
已采纳
首先,sqlplus连接进去生成pfile文件:sqlplus/assysdbacreatepfile&x27;/home/oracle/pfile.ora&x27;fromspfile;然后,修改p
Oracle表被误删除,drop后新建了表并产生了数据,如何恢复误删除表?
回答 1
已采纳
1、以下演示emp表被droptable后的恢复操作;1步:创建emp表,只有2条记录;SQL>createtableempasselectfromscott.empwhererownum&lt
oracle sys_guid
回答 2
问题已经处理了,dns的问题导致!在hosts文件里面配置了主机名和ip的对应关系后恢复正常
白求恩如何出一个月前的报告
回答 1
暂时不支持指定时间段来采集,建议通过定时任务每月或者每周采集一次。
oracle基础信息脚本?
回答 1
已采纳
–获取数据库版本SELECTFROMv$version;–获取实例名SELECTinstancenameFROMv$instance;–获取数据库启动时间SELECTstartuptimeFROMv$
Oracle 优化器模式选择
回答 1
分页
RAC频繁出现Transaction recovery: lock conflict caught and ignored提示
回答 5
上传附件:Transactionrecoverylockconflictcaughtandignored.pdf
Oracle修改用户名会有什么风险吗?
回答 2
不建议去修改基表相关的信息,你可以选择使用数据泵的方式来达到用户名更换的目的,且没有风险。示例:impdp\'/assysdba\'directoryDATAPUMPdumpfileexpdpdate
Dba_capture.checkpoint_retwntion_time设置后失效
回答 9
好的,目前dbacapture下所有进程修改了保留一天,频率为100M.,但是logmnrrestartckpt$下记录不会自动清除,怎么触发他做delete记录?是不是有个时间点,固定的窗口来执行d