日期:2014-05-17  浏览次数:21167 次

存储过程获取sqlcode和sqlerrm的问题
存储过程里面捕获异常后,我想记录打日志表里面去:
insert into log_table(c1, c2) values(sqlcode, sqlerrm);

为什么存储过程报错,不能直接调用sqlcode,sqlerrm。

我单独创建两个类型
error_code number;
error_msg varchar2(200);

error_code := sqlcode;
error_msg := sqlerrm;

然后
insert into log_table(c1, c2) values(error_code, error_msg);
这样就可以。

但是这样就得创建两个对象。

我想直接在insert语句里面调用到sqlcode,sqlerrm,不创建两个对象,请问有什么好办法?

------解决方案--------------------
多创建2个变量而已,又不影响什么。。。

只能这么做
------解决方案--------------------
声明两个变量,有很大浪费?
------解决方案--------------------
sqlcode, sqlerrm是两个函数,跟sysdate类似
可能insert into需要静态值吧