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


相关推荐

  • loadrunner使用教程之IP欺骗[通俗易懂]

    loadrunner使用教程之IP欺骗[通俗易懂]上次做压力测试的时候网站崩了,老大怀疑一点原因是说我用同一个IP施压2000个用户,服务器可能拒绝了些访问请求,这样不是很靠谱。今天有空就研究了下IP欺骗,模仿多个IP里发射用户,“这样可以在很大程度上模拟实际使用中多IP访问和并测试服务器均衡处理的能力”,嗯..第一步,录制脚本,不说了,反正也是自己看。简单录制了一个查询操作的脚本。第二步,把脚本放场景中来,脚本是脚本,场景是场景,一定要

    2022年10月10日
    0
  • MySQL递归查询 三种实现方式

    MySQL递归查询 三种实现方式我是以山东济南的行政区划作为示例的,数据库是MySQL话不多说,直接上示例代码!感觉阅读麻烦的伙伴可以直接下载资源:点我下载1.建表脚本1.1.建表DROPTABLEIFEXISTS`sys_region`;CREATETABLE`sys_region`(`id`int(50)NOTNULLAUTO_INCREMENTCOMMENT’地区主键编号’,`name`varchar(50)CHARACTERSETutf8COLLATEut

    2022年7月15日
    39
  • MFC 读取EXCEL中数据[通俗易懂]

    MFC 读取EXCEL中数据[通俗易懂]MFC读取Excel例子(2013-01-1200:04:24)转载▼标签:365mfcit分类:MFC-office操作1.       首先要将excel类添加到工程中。在ClassWizard中,【AddClass】,在Excel的安装目录找到Excel.exe(Microsoft2003是Excel

    2022年6月15日
    23
  • Unity零基础到入门 ☀️| Unity从青铜 到 王者!只差这篇让你学会Unity中最重要的部分——脚本组件✨

    Unity零基础到入门 ☀️| Unity从青铜 到 王者!只差这篇让你学会Unity中最重要的部分——脚本组件✨从倔强青铜到荣耀王者!只差这篇让你学会Unity中最重要的部分——脚本组件✨。本篇内容对Unity脚本做了一个超级详细的介绍,从开发工具到具体实例,API等都有介绍。

    2022年4月30日
    42
  • HTTP常见的状态码

    HTTP常见的状态码状态码解释200一切正常301永久重定向302临时重定向401用户名或密码错误403禁止访问(客户端IP地址被拒绝404文件不存在414请求URI头部过长500服务器内部错误502BadGateway(错误网关)…

    2022年9月14日
    0
  • Ping 命令详解[通俗易懂]

    简述:ICMP协议是“InternetControlMessagePtotocol”(因特网控制消息协议)的缩写。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。ping(PacketInternetGroper),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP;回声请求消息给目的地并报告是否收到所希望的ICMPecho(ICMP回声应答)。它是用来检查网络是否通畅或者网络连接速度的命令ping命令通常用来作为网络可用性的检查。ping命

    2022年4月10日
    36

发表回复

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

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