oracle数据库定义变量和使用_oracle执行变量

oracle数据库定义变量和使用_oracle执行变量一、异常错误介绍我们在使用oracle数据库做程序开发时,一般都会使用plsql做客户端连接查询工具,在写sql语句时plsql经常会报并非所有变量都已绑定01008这样类似的异常错误,通常我们程序员还看不出具体有什么毛病,具体错误提示见下图显示:出现以上这种错误出现的次数多了,我们就会有经验解决了,经过我们常年的工作经验以及网友的问题汇总,得出的最终结论就是:程序员sql语句书写不严谨导致该问题…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、异常错误介绍

我们在使用oracle数据库做程序开发时,一般都会使用plsql做客户端连接查询工具,在写sql语句时plsql经常会报并非所有变量都已绑定01008这样类似的异常错误,通常我们程序员还看不出具体有什么毛病,具体错误提示见下图显示:

82588048f8d4d5adafbf5d3c5f4ebea8.png

出现以上这种错误出现的次数多了,我们就会有经验解决了,经过我们常年的工作经验以及网友的问题汇总,得出的最终结论就是:程序员sql语句书写不严谨导致该问题的出现,有时候看似将sql写的正确无误,却漏了标点符号,或者标点符号是中文状态下的,又或者单引号双引号导致的问题。

综上异常问题所述,应广大网友需求提问,我们决定将ORA-01008展示的错误异常的情况和解决方案全部汇总一遍,将并非所有变量都已绑定的错误扼杀在摇篮中,广大程序开发者也能够通过本篇文章的总结快速查找出自己问题的所在,可谓一举两得。

二、ORA-01008:并非所有变量都已绑定原因与解决方案案例汇总

案例一:变量字段为null

a484a8f4c1b1269193153204c54bef91.png

392c4d8289b7da0d6038e489f6924c23.png

解决方案:上图中的sql语句是oracle的多表联查复杂查询语句,sql语句越是复杂越容易出现错误,一开始以为上图中的type变量未定义导致的错误,后来将该变量重新定义或者删除后依然报相同的错误。

sql语句代码检查了很多遍都没有任何问题,后来想到可能是因为字段中有null数据导致的变量无法绑定,经查阅筛选数据定位到了null值的字段,将该条数据的null改为空白或者其它字符后该错误就解决了。

案例二:绑定变量不一致

ef136c1a8ff74ab554a689487b3ee46d.png

解决方案:上图就是出现该错误的sql语句,当我们尝试设置参数时,当参数设置错误、绑定变量不对或者变量绑定数量出现异常的时候就会报变量没有绑定的异常。

应用plsql工具执行动态SQL语句查询或更新操作时,SQL字符串中填充的变量数与USING关键字中绑定的变量数不匹配。

案例三:不必要的标点导致并非所有变量都已绑定

bfcfa6ee82c21664a6fff25c1268d421.png

解决方案:上图的代码小编在学习oracle初期自己尝试着写一个存储过程的案例代码,然后就莫名其妙的出现了标题中提到的这种错误。

小编从头到尾地多次比对了oracle数据库存储过程的语法结构,发现写的存储过程语句是没有语病问题的,只不过b => :603前面多加了一个冒号,导致变量不能绑定,将冒号去掉后sql语句就能正常运行了。

大家遇到这种错误时,第一点要做的就是检查下所有的标点符号是否多余,尤其是空格和有中文符号的情况,这种情况肉眼极其难看出来,所以大家平时书写sql语句的同时一定要养成认真的习惯。

案例四:sql语句语法错误

edf0bbb717629a6d2de0ca117fd5438b.png

解决方案:上图中是一个语法有错误的sql存储过程语句,而且还有两个错误,也算是个很典型的并非所有变量都已绑定的案例了。

首先,对冒号的用法没有理解透彻,上图中标注的update修改语句中,plsql中是可以直接使用变量操作的,压根就不需要加冒号多此一举的,存储过程中做动态sql绑定变量时才是冒号的正确用法。

其次,增加数据的sql语法有问题,声明变量是什么顺序,into后面跟的字段也应该与声明变量的顺序一一对应才可以,顺序是不能混乱的。

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196235.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • web安全测试_web测试的主要测试内容

    web安全测试_web测试的主要测试内容1.1什么是web安全测试?Web安全测试就是要提供证据表明,在面对敌意和恶意输入的时候,web系统应用仍然能够充分地满足它的需求1.2为什么进行Web安全测试2005年06月,CardSystems,黑客恶意侵入了它的电脑系统,窃取了4000万张信用卡的资料。2011年12月,国内最大的开发者社区CSDN被黑客在互联网上公布了600万注册用户的数据;黑客随后陆续公布了网易、人人、天涯、猫扑等多家大型网站的数据信息。2014年12月,大量12306用户数据被泄露,被泄露的数据达131653条,包括

    2022年9月16日
    0
  • GridView使用RenderControl取得HTML的问题[通俗易懂]

    GridView使用RenderControl取得HTML的问题[通俗易懂]
    如果想在CodeFile中取得GridView结果的HTML内容,首先会遇到这样的错误讯息:
     型别’GridView’的控制项’GridView1’必须置于有runat=server的表单标记之中。
    这个问题,可以在您的CodeFile中加入以下这段来解决Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)      ‘处理’GridView’的控制项’GridView’必须置

    2022年7月20日
    10
  • C#中DllImport用法和路径问题「建议收藏」

    转载:https://blog.csdn.net/zhoucaifu/article/details/5416892DllImport是System.Runtime.InteropServices命名空间下的一个属性类,其功能是提供从非托管DLL导出的函数的必要调用信息。DllImport属性应用于方法,要求最少要提供包含入口点的dll的名称。DllImport的定义如下:[Attribu…

    2022年4月8日
    273
  • 面试官:请你谈谈Java的类加载过程[通俗易懂]

    面试官:请你谈谈Java的类加载过程[通俗易懂]刚刚走出校门的应届毕业生,如果在去寻求一份Java开发的工作时,你的面试官很有可能一边看着你的简历,一边漫不经心地问你:了解过Java类的加载过程吗?这个时候你一定要注意了,虽然这是一个老生常谈的问题,但是这也是一个非常能够考验你Java功底的问题。如果你答好了,这是你应该的;如果你没答好,那么对不起,面试官心中已经给了你不及格。今天,小编就Java类加载过程这个问题,抛砖引玉,说一下…

    2022年8月11日
    4
  • 溢出OF和进位CF标志位的判定

    溢出OF和进位CF标志位的判定一、学习CF与OF,要始终牢记一点。CF是无符号数溢出标志,OF是有符号数溢出标志。通俗一点说就是,即使有符号数相加/相减导致了CF=1也没什么意义,不能说明结果的正确与否。此时,OF=1,则说明结果溢出,出现错误;OF=0,说明结果正确。这个过程根本和CF没关系,CF=1/0,都不会影响。同理也可以得出OF对无符号数也无影响。举个例子:[9-6]补=[9]补-[6]补=[9]补+[-6]补[9]…

    2022年7月12日
    272
  • jmeter-header获取ssionid

    jmeter-header获取ssionid

    2021年9月18日
    73

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号