ORA-06502:数字或值错误 :character string buffer too small ORA-06512:在“函数名”,line 117

1.在存储过程中使用“king.type_dis_con” 函数时报错,这是我的自定义函数

报错原因:函数功能为字段值拼接,拼接之后的值超出变量长度

函数中变量的长度为varchar2(30000)
字段值拼接后放入变量中

解决方法:

1.修改变量长度
把变量长度加长就好
但是像我遇到的这种情况就不适合加长了
因为变量已经要达到最大长度了。
这种情况建议更换函数

2.更换函数
这里我更换的是函数
wmsys.wm_concat('字段')
这个函数也是字符串拼接,分隔符同样是逗号
但是我的函数是返回的varchar2类型的数据
这里返回的是clob

2.如果把CLOB类型的数据直接插入表中,或赋值会报错

报错为:Oracle中 ORA-00932: 数据类型不一致: 应为 -, 但却获得CLOB

出现原因:字段为CLOB型 不能直接插入或赋值。

2.1赋值时,CLOB字段修改成 to_char(CLOB字段)即可

2.2插入表中时需要将表中字段数据类型更改为CLOB
更改方法参考文章:ORACLE 当字段中有数据如何修改字段类型

字段中有无数据都可参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值