永发信息网

哪些情况需要重新编译存储过程

答案:2  悬赏:50  手机版
解决时间 2021-03-09 00:48
  • 提问者网友:美人性情
  • 2021-03-08 11:13
哪些情况需要重新编译存储过程
最佳答案
  • 五星知识达人网友:人類模型
  • 2021-03-08 11:34
如果是在plsql developer中修改的,可以直接点那个齿轮图标,或者F8即可编译。 如果是在sqlplus中,那就敲入修改后的过程代码(create or replace procedure...),最后以/结尾运行即可。
全部回答
  • 1楼网友:神的生死簿
  • 2021-03-08 12:22
这是我同事做的一个存储过程,我们一般都用这个处理 create or replace procedure own.p_hsj_compre is cursor cur_invalid_obj is select uo.object_name,uo.object_type from user_objects uo, user_order_object_by_depend uobd where uo.object_id = uobd.object_id(+) and uo.status != 'valid' order by uobd.dlevel desc,uo.object_type,uo.object_name; ls_objname varchar2(100); ls_objtype varchar2(100); ls_status varchar2(20); ls_text varchar2(4000); ls_sql varchar2(100); begin open cur_invalid_obj; loop fetch cur_invalid_obj into ls_objname,ls_objtype; exit when cur_invalid_obj%notfound; if ls_objtype in ('package body', 'package', 'function', 'procedure','trigger', 'view') then if ls_objtype ='view' then ls_sql :=' alter view '||ls_objname ||' compile'; execute immediate ls_sql; else dbms_ddl.alter_compile(ls_objtype,null,ls_objname); end if; select status into ls_status from user_objects where object_name = ls_objname and object_type = ls_objtype; end if; end loop; close cur_invalid_obj; exception when others then if cur_invalid_obj%isopen then close cur_invalid_obj; end if; end; /
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯