<p id="main-toc"><strong>目录</strong></p>
讯享网
1、定义存储过程
2、错误描述
3、解决方法①
4、解决方法②
5、演示正确的执行
1、定义存储过程
定义包:
图1-1
定义存储过程:

图1-2
定义的包返回结果:
对应图1-1
讯享网
代码1-3

存储过程:
对应图1-2
代码1-4
2、错误描述
测试时出现错误:标识符无效

图2-1
尝试在PL/SQL中解决:为入参加上单引号,确实可以解决。

图3-1
后端入参没有做处理,报错!

图4-1
3、解决方法①
在后端传参时使用转义字符增加单引号,如在PL/SQL中测试时那样:
尝试在后端使用同样的方法解决标识符无效的报错:


图5-1
可以在输出的SQL工具中看到,调用存储过程的入参:

图5-2
4、解决方法②
修改存储过程。
在入参的两侧分别增加一对单引号这样执行时就不能转为数值而发生标识符无效的报错。
相当于如测试时在入参两边增加了一个单引号。
这样做即使后端不做入参处理程序也能正常运行。

图6-1
讯享网
代码6-2
代码6-2和代码1-4对比,可以清晰的发现是在入参的两边各增加了一个单引号。
思考其错误原因,是Oracle执行时会强制将字符转为数值,这里不能转换,因而发生了错误。
所以在此增加单引号告诉Oracle这是字符。
5、演示正确的执行
正常的执行如下:
图7-1

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/195102.html