Oracle错误:未声明存储过程参数值

时间:2018-04-25 17:58:46

标签: oracle11g

以下是程序代码段:

PRC_UPDATE

BEGIN

UPDATE EMP E SET E.NAME = 'X' WHERE E.E_ID = 'Y';

COMMIT;

EXCEPTION WHEN OTHERS 

ROLLBACK;

PRC_ERROR_LOG(E.E_ID,sqlcode,sqlerrm);

RAISE;

END PRC_UPDATE;

我有一个更新表中值的过程。我已经定义了一个错误记录过程(PRC_ERROR_LOG)以在错误记录表中插入错误。但是在调用PRC_ERROR_LOG时它会抛出错误如"identifier 'E_ID' must be declared"。它是否会识别错误被抛出的Row值。

基本上我的要求是将错误和捕获特定错误的行插入到错误表中。如何在错误记录过程中发送特定的Row值?

提前致谢

1 个答案:

答案 0 :(得分:0)

您应该考虑使用游标,您遇到此错误的原因是您已经执行了更新语句,e.e_id现在已超出范围。您也可以使用try-catch来完成此任务。