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 当字段中有数据如何修改字段类型
字段中有无数据都可参考