oracle ORA-01704: string literal too long字符串文字太长报错解决方法

文章讲述了在遇到Oracle数据库插入字符串超长报错ORA-01704时的解决方案,包括使用变量赋值法或UPDATE语句更新CLOB字段,以及通过DMP文件进行数据导入以避免报错。还详细提供了DMP文件的导出和导入步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此类问题基本是在需要处理大文本内容时出现,例如将大文本插入到某个字段内,或者导入存在clob类型字段的内容且文本内容超过4000字符长度时,执行则弹出ORA-01704: string literal too long的报错信息,可以尝试以下方案。

报错图示:

一、当使用 insert  into 语句插入大文本数据

1.变量赋值法;

declare
    V_clobdata CLOB := '大文本内容';
BEGIN
    INSERT INTO test123 (id, marks) values (1, V_clobdata);
END;

2.通过 up  date 语句手工填入大文本数据内容,适用于少量数据需要修改的情况

select * from test_table for update;

二、数据迁移时,通过文件形式导入数据库(例如.csv 或 .sql等文件)

这类文件在plsql中导入时,实质上也是通过执行insert into语句插入,所以也同样会导致报错。

此时推荐选用导出dmp文件,dmp使用二进制存储,避免了上述的报错问题。

dmp文件导出步骤

1.菜单栏点击tools

2.下滑选择如图所示

 3.进入页面 

 ①选择具体用户   ②选着导出的表(可以单个,多个或全选) ③ 选择导出文件存放路径及文件名 ④点击导出即可

如导出失败可以参考此文解决:​​​​​​​​​​​​​​https://blog.csdn.net/fzy999999/article/details/131208529

dmp文件导入步骤

1.导入表格

 选择需要导入的文件

 完成数据的导入,无报错。

欢迎一起交流学习更多方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值