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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 录屏做成gif的软件_下载录屏软件

    录屏做成gif的软件_下载录屏软件推荐一款神奇的gif录屏小软件,开源免费安装后打开即可录屏支持win,macos下载:https://www.cockos.com/licecap/github:https://github.com/justinfrankel/licecap

    2025年12月4日
    2
  • 如何解压 GZ 文件

    如何解压 GZ 文件Gzip 是一个流行的压缩算法 它可以在保持文件模式 归属 时间戳的前提下 压缩文件大小 这个算法经常被用来压缩网页元素 以便更快加载网页页面

    2025年12月11日
    5
  • 用java写一个登录界面的完整代码_javaweb简单的用户登录界面

    用java写一个登录界面的完整代码_javaweb简单的用户登录界面一、前言Vue实现QQ第三方登录授权需要获取到APP_ID和回调域地址,关于这2个的获取方式可以参考小编的另外一篇文章Java实现QQ第三方登录温馨小提示:本文基于springboot+vue前后端分离的架构实现三方登录授权主要实现逻辑:前端vue进行授权页面跳转,授权过来拿到后端需要的openID,accessToken参数,最后后端获取到授权用户信息进行业务处理完之后再返回给…

    2025年6月13日
    3
  • 关于FEC驱动_FEC伍丰

    关于FEC驱动_FEC伍丰转载说是网络,其实是网卡驱动。而且是针对于FREESCALE芯片的FEC端的驱动,我不知道别的芯片厂商的FEC模块是怎么样的,但就我接触过的几款FREESCALE的芯片来看,比如基于POWERPC的860T和ARM系列的MX27等,他们的FEC有一个明显的特点就是都是由BD和一个DMA缓冲组成,而这个DMA是专用的,也就是只是给FEC使用,区别于芯片内的DMAC模块。我们先来从fec.c这个与

    2022年8月11日
    6
  • Go语言代理proxy设置「建议收藏」

    Go语言代理proxy设置「建议收藏」关于GoproxyGOPROXY由于国内的网络环境,我们可以通过配置GOPROXY避免DNS污染导致的模块拉取缓慢或失败的问题,加速你的构建代理链接阿里云GoModule代理仓库服务Goproxy中国配置方法打开你的终端并执行:$goenv-wGOPROXY=https://goproxy.cn,direct完成。macOS或Linux打开你的终端并执行:$exportGOPROXY=https://goproxy.cn或者$echo“exportG

    2022年7月26日
    8
  • MATLAB函数调用

    MATLAB函数调用数学建模matlab自定义函数时间2020年5月10日学习Matlab自定义函数使用,并结合所学函数简单修改了一下上周的代码实现了Topsis法。1.Matlab语句构成的程序文件称为M文件,以m作为文件的扩展名,分为函数文件和程序文件。程序文件即脚本文件,无function;函数文件有function,且在第一行或者第一个不是注释的行2.两个文件运行函数:函数定义文件和函数调用文件(函数可在脚本文件或命令窗口直接调用),两文件必须放在同一目录下,函数文件名必须与函数名相…

    2022年7月17日
    20

发表回复

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

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