oracle insert into clob字段报错oracle ORA-01704: string literal too long

一.背景

最近开发一个彩信客户端,往oracle数据库表插入彩信做测试时报错了,语句出错了---oracle ORA-01704: string literal too long

语句如下:

insert into
Mms_Task_Info(TASK_ID,SUBJECT,MOBILES,SEND_MSG,SYS_TIME,
RESEND_TIMES,user_id,user_Organization)
values(sys_guid(),'彩信标题','13000000000','此处省略好多字',sysdate,0,'','');
commit;

 

二.原因

因为彩信内容含有图片,并且它是由base64转码生成的,所以特别长,虽然send_msg字段是clob类型(最大能存4GB!),但是sql语句的语法解析对字段却有长度限制.

 

三.解决办法

 

1.存储过程

CREATE OR REPLACE PROCEDURE p_insertmms_send
IS

v_clob clob :='此处省略好多字';
begin
insert into
Mms_Task_Info(TASK_ID,SUBJECT,MOBILES,SEND_MSG,SYS_TIME,
RESEND_TIMES,user_id,user_Organization)
values(sys_guid(),'彩信标题','13000000000',v_clob,sysdate,0,'','');
commit;
end;

 

2.程序入库

sorry,这个没有具体操作过,但是一个正确的思路.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值