OCEANBASE - PLS00172

PLS-00172 String literal too long 在oceanbase层面可以解决么? 还是一定要通过后台代码修改解决 ; 文本长度很大会超过 32767 字节

这个报错是什么操作产生的?

oceanbase版本 :4.2.1.6

插入clob数据的时候报错 ;
经测试发现通过plsql执行就报PLS-00172
begin
insert into xxxx(a) values(v) ;
end;

不通过plsql语法 直接执行就没问题
insert into xxxx(a) values(v)

插入的clob数据为 109448 bytes

oracle模式属于企业版, 建议你通过以下方式寻求帮助:

1.如你所在的企业客户已签署OceanBase企业版销售合同,请你联系客户经理;

2.如你所在的企业客户尚未签署OceanBase企业版销售合同,你可通过OceanBase官网商务咨询页面留下你的联系方式,OceanBase企业版的业务顾问会在一个工作日内与你联系。

OceanBase官网商务咨询

https://www.oceanbase.com/contactus?fromPage=https%3A%2F%2Fwww.oceanbase.com%2Fsoftwarecenter-enterprise&dataSources=softwarecenter-enterprise_footercontact_d2022

把存储过程里的value先参数化,然后在insert 里使用参数

DECLARE 后 INSERT 做变量替换也是报这个错

你好这个是版本的问题么?
oracle企业版本支持
oceanbase也只有企业版支持 , 社区版不支持我可以这么理解么?

begin
lob=‘xxxxx’
insert into xxxx(a) values(lob) ;
end;
是这样写的吗

社区版没有oracle模式,你这里是oracle模式 只能是企业版

好的 , 意思直接联系oceanbase的技术支持呗

begin
declare
xxxx clob := ‘…’ ;
begin
insert into table(col) values(xxxx) ;
end ;
end ;

如果要改动代码可以实现 , 但是不清楚为什么oracle支持 但是oceanbase - oracle模式下会报错 ,想了解是不是我们参数配置问题 , 还是本身就不支持

嗯嗯,哪听大佬的联系下官方支持,有结果来也来写一下,沉淀在社区,我们也学习下 :handshake:

ok