论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
数据库
›
SqlServer
›
ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小 ...
ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小
雁过留声
金牌会员
|
2024-9-12 02:50:58
|
来自手机
|
显示全部楼层
|
阅读模式
楼主
主题
778
|
帖子
778
|
积分
2334
ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小
初次遇见
下面开辟小哥反馈上来这个题目时,第一反应应该是某个字段超长了或者某个字段数据范例不对传空值了。
第一时间去查抄了代码,发现一个奇怪的题目:
有两套环境
1:Springboot 2.2.1.RELEASE 、 Mybatis-plus 3.2 、 ojdbc8 21.1.0.0
2:Spring、 Mybatis 3 、 orai18n、 OracleDriver
题目描述
环境1执行Oracle存储过程可以乐成插入,环境2执行报错:ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小
我把执行sql完全打印出来了对比发现是一模一样的。(雷同数据库,雷同连接信息等)
那为什么两个雷同的sql执行效果是不同的呢?
题目着手
1、起首还是本能的去对比了下两边的代码逻辑,调用存储过程的xml研究了一下,发现确实是雷同的;
2、于是把矛头对准了运行环境 两者最大的区别就是 一个是内置tomcat启动 一个是外置tomcat启动;数据库驱动不同;长期化框架和版本不同;
3、一个一个去验证了下,tomcat版本同等后发现还是不行,先pass;
4、当改成雷同驱动时发现,之前不行的环境2居然可以了!
峰回路转
原本以为可能就是驱动不同导致执行存储过程时一些转换出现题目,后面观察代码发现,之前的存储过程再环境2都是可以执行的!就唯独这一个存储过程不停不行???
那肯定是自己的判断出了错误,可能驱动只是表层题目。确实会影响到,但不是致命题目!!!
再次着手代码 着手数据库报错日记
Oracle都会有一张报错日记表:T_DBLOG
找到最新的一条报错记录!!!终于看到对应报错行数了
于是切入存储过程看详细sql!!!
好好好!题目在这边呗!!!
P_APPLY_ID是通过存储过程中生成的 看了下数据范例
不对啊 这个长度20够了呀 怎么会超长呢???
单独执行下这一条函数试试看吧!!
我这个生成绩这个长度呀,表字段长度是完全够了的!
那又是啥缘故原由呢??接着往下看~~~~~
真相大白
下面就到了紧张刺激的贴代码环节
先看看我修改前的代码吧!
再看看我修改后的代码
是的没错 就改了个mode 从原本的IN改成了INOUT!
玩过mybatis的小伙伴肯定清楚 IN表示输入参数 也就是我们常说的入参。
INOUT表示输入输出参数,再存储过程中是可以被修改的!
真相浮出水面,我这个字段是存储过程中生成的,如果用IN的话,这个副本值是不停没法被改变的,或者说没法生成。那为什么环境1可以呢,作者还在研究中!!!准备从驱动入手!
事情到这里也结束了,只能说再调用Oracle的存储过程时,一定要严谨参数的定义!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
雁过留声
金牌会员
这个人很懒什么都没写!
楼主热帖
阿里云体验有奖:如何将 PolarDB-X 与 ...
XShell免费版的安装配置教程以及使用教 ...
微服务大行其道的今天,Service Mesh是 ...
【如何优化她】教你如何定位不合理的SQ ...
嵌入式数据库简介
Elasticsearch 入门实战(5)--Java API ...
day02-代码实现01
鸿蒙3.0来了,这次,我真的想批评鸿蒙 ...
十年技术进阶路,让我明白了三件要事( ...
常用类-LocalDate、LocalTime、LocalDa ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表