我有一个存储过程,我从Java代码调用。有一个IF块,如果IF条件为假,则该过程不执行任何操作。那么在这种情况下ORA代码是什么?
答案 0 :(得分:4)
ORA代码为ORA-00000: normal successful completion
,因为没有发生错误。
如果您想要不同的结果,则需要对特定内容进行编码。您的工作取决于您执行的业务规则。也许你需要提出异常?此示例测试参数是否已填充,如果不是
,则抛出异常if p_str is null then
raise_application_error(-20000, 'parameter P_STR must be populated');
else
....
end if;
在此方案中,ORA代码为ORA-20000
。 Oracle保留错误号-20999到-20000供我们自己使用。
"如果更新正在运行且表#34;
没有变化,该怎么办?
同样的事情。任何不会引发异常的事情都是成功完成的。在这种情况下,我们可以测试更新是否更改了sql%rowcount
值的任何内容:
update your_table
set whatever = p_str
where id = p_id;
if sql%rowcount = 0 then
raise_application_error(-20001, 'No rows in YOUR_TABLE match ID = '||p_id);
end if;
答案 1 :(得分:0)
调用SQLCODE返回的值(你提到的“ORA代码”)总是为零,除非从异常处理程序中调用该函数。