网站首页 > 文章中心 > 其它

oracle怎么编译无效

作者:小编 更新时间:2023-08-26 22:42:57 浏览量:430人看过

如何在Oracle中重编译所有无效的存储过程

oracle form 无法编译,求助

个人观点:

①. last_ddl_time就是指最后一次编译的时间. 你认为的create or replace 其实就是一种编译

①.) 我个人工作经验中没有发现A调用B会让B重新编译.

案例:B中引用了一张表.我将表删除了,编译B.那么B出现了错误.此时我又将表还原了.再去编译A.注意:A中调用B.但是B是错误的.如果调用B让B也编译的话,那么B会编译通过,A没问题.事实上:由于B的错误,导致A编译也错误.可见B并没有编译.

oracle怎么编译无效-图1

---------------------------------- -----------------------------------------

早上看到了你昨晚发的信息.尝试了下.你的结论是有一半是正确的.

正确的解释应该是:

①. 假设A、B都是正确的 那么调用的时候无需编译;

Oracle会自己判断A、B是否有效,再根据情况决定是否去编译.

如何重编译ORACLE数据库的无效对象

如果无效对象的数量很少,那么你可以逐个编译这些对象.

ALTER PACKAGE my_package COMPILE;

ALTER PACKAGE my_package COMPILE BODY;

ALTER PROCEDURE my_procedure COMPILE;

ALTER FUNCTION my_function COMPILE;

ALTER TRIGGER my_trigger COMPILE;

ALTER VIEW my_view COMPILE;

oracle 过程 重新编译也无效

编译完成,不代表里面语句没问题,这种情况是存储过程里存在某种错误

在 SQL *Plus 或者 PL/SQL Developer 的 Command Windows 中,执行

show errors procedure USP_EXCEPTION;

查看一下错误是什么.

我的修改如下:

CREATE OR REPLACE PROCEDURE USP_EXCEPTION(EMPNO INTEGER, --批次ID

P_FM NUMBER, --分母

P_FZ NUMBER, --分子

P_RESULT OUT NUMBER --结果

) IS

V_RAISE EXCEPTION; --异常处理

TABLE_PCMX type_table_pcmx;

BEGIN

IF P_FZ = 0 THEN

RAISE V_RAISE;

END IF;

P_RESULT := P_FM / P_FZ;

SELECT ENAME, EMPNO, JOB, DEPTNO

FROM EMP

WHERE EMPNO = EMPNO;

EXCEPTION

WHEN V_RAISE THEN

WHEN NO_DATA_FOUND THEN

WHEN OTHERS THEN

END;

oracle程序包或函数处于无效状态

以上就是土嘎嘎小编为大家整理的oracle怎么编译无效相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章