关于Oracle数据库中的SQLCode和SQLERRM函数问题
下面这个存储过程,有两个输入,两个输出。begin后,就给两个输出参数赋值。。。再下面进行输入参数的格式判断,不符合条件的就RAISE_APPLICATION_ERROR...
下面这个存储过程,有两个输入,两个输出。
begin后,就给两个输出参数赋值。。。
再下面进行输入参数的格式判断,不符合条件的就
RAISE_APPLICATION_ERROR(-20021, 'P_IN_DATE_FROM DATE FORMAT IS ERROR!');
我TEST了一下。故意输入错误的日期格式,然后输出的两个参数的值变成了
RAISE_APPLICATION_ERROR(-20021, 'P_IN_DATE_FROM DATE FORMAT IS ERROR!');中的值
问题来了————为什么RAISE_APPLICATION_ERROR中的两个参数值可以自动赋值给我自己定义的两个输出参数?
我百度了一下,发现了SQLCode和SQLErrm这两个函数的存在,看了一些教程后,我觉得输出参数应该定义为:
P_OUT_SQLCODE := SQLCode;
P_OUT_ERRMSG := SQLErrm;
这样才能获得RAISE_APPLICATION_ERROR中的值。。。而上面明显没这么写,却获得了其中的值。这是为什么呢? 展开
begin后,就给两个输出参数赋值。。。
再下面进行输入参数的格式判断,不符合条件的就
RAISE_APPLICATION_ERROR(-20021, 'P_IN_DATE_FROM DATE FORMAT IS ERROR!');
我TEST了一下。故意输入错误的日期格式,然后输出的两个参数的值变成了
RAISE_APPLICATION_ERROR(-20021, 'P_IN_DATE_FROM DATE FORMAT IS ERROR!');中的值
问题来了————为什么RAISE_APPLICATION_ERROR中的两个参数值可以自动赋值给我自己定义的两个输出参数?
我百度了一下,发现了SQLCode和SQLErrm这两个函数的存在,看了一些教程后,我觉得输出参数应该定义为:
P_OUT_SQLCODE := SQLCode;
P_OUT_ERRMSG := SQLErrm;
这样才能获得RAISE_APPLICATION_ERROR中的值。。。而上面明显没这么写,却获得了其中的值。这是为什么呢? 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询