当通过insert语句直接插入大量字符串(主要是html的内容),超过4000字符时候,就会报:

ORA-01489: 字符串连接的结果过长

虽然字段是clob,足以存储,但是通过这种直接插入的时候,因为没有强制指定带插入字符串为clob类型,

oracle会把插入的字符串作为 “字符串类型”处理,由于oracle有最大字符串限制(不超过4000个字符),所以会报错。

解决思路:指定待插入字符串类型为clob,可以使用过程或存储过程

例子:

DECLARE
 REALLYBIGTEXTSTRING CLOB := '待插入的海量字符串';
BEGIN

INSERT INTO test_table VALUES('test', REALLYBIGTEXTSTRING, '0');
end ;
/

commit;

这样就可以解决问题。

补充:java的jdk对这种情景有通过l流的方式处理,因此比较方便。

另外:插入html内容,可能含有空格  ,字符&是oracle的关键字,因此插入之前要转义

如:'||chr(38)||'nbsp;

如何通过sql的insert语句插入大量字符串到oracle的clob字段?的更多相关文章

  1. mysql数据库使用insert语句插入中文数据报错

    在mysql的命令行模式中,通过insert语句插入中文数据的时候报错,类似于下面这样: Incorrect string value: '\xE7\x8F' for column 'name' at ...

  2. Oracle数据库clob字段导出为sql insert插入语句

    oracle数据库的clob字段导出为sql insert插入语句可以分三种情况:1,clob没有换行符:2,clob有换行符但不以分号结尾:3,clob有换行符并且以分号结尾. clob没有换行符使 ...

  3. Ibatis insert语句插入null引发的错误

    公司使用的orm框架为ibatis,其中默认的insert语句一直都是这样写的: <insert id="insert" parameterClass="activ ...

  4. java 将长度很长的字符串(巨大字符串超过4000字节)插入oracle的clob字段时会报错的解决方案

    直接很长的字符串插入到clob字段中会报字符过长的异常,相信大家都会碰到这种情况 String sql = "insert into table(request_id,table_name, ...

  5. sql server的缺陷 将截断字符串或二进制数据 哪个字段

    将截断字符串或二进制数据 哪个字段 消息 8152,级别 16,状态 14,第 2 行将截断字符串或二进制数据. sql server2000 sql server2014 也不能直接提示出哪个字段的 ...

  6. 值班问题:insert语句插入了两条数据?

    上周值班,碰到这样的一个客户问题,表结构简化如下: CREATE TABLE `aa` (`c1` int(10) unsigned NOT NULL AUTO_INCREMENT,`c2` int( ...

  7. PL/SQL Developer如何导出数据成sql的insert语句

    1.选择菜单 , [工具]-[导出表] 2.选择tab标签页的,[SQL插入] 注意where条件语句,注意要选择相应的表 3.选择输出

  8. 一条insert语句插入数据库

    CREATE TABLE test_main ( id INT NOT NULL, value VARCHAR(10), PRIMARY KEY(id) ); oracle插入方式:INSERT IN ...

  9. Sql生成 Insert 语句

    declare @TableName sysname select @TableName = 'T_OOSOrder' declare @result varchar(max) = 'INSERT I ...

随机推荐

  1. iOS 两个应用之间的切换

    A 跳到B NSURL *urlT = [NSURL URLWithString:@"TestB://XXXXXXX"]; //注意“://”后面可以任意传参数.这些参数传过去后当 ...

  2. asp.net正则表达式

    导入引用命名空间:using System.Text.RegularExpressions //Regex类,常用方法: //摘要:1.IsMatch(String);2.IsMatch(String ...

  3. 微信小程序 - 怎样合理设计小程序

    假如我们无意中,把腾讯地图或者高德地图的管理Key删了! 关于定位的一切相关模块就都会报废! 接着呢?客户会找你,对你公司信任感下降,一系列问题接踵而来 最好的办法就是先预留key后台管理 “随时可以 ...

  4. 将Spring-boot应用部署到Docker容器

    1:Docker中设置阿里云加速 使用阿里云的加速器,因为在使用docker的时候,会需要从docker的网站下载镜像文件,下载速度可能会很慢.获得阿里云加速,需要登录阿里云开发者平台,然后点击右侧的 ...

  5. Serializable 介绍

    今天咱们简单介绍一些serializable. 1.序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来.虽然你可以用你自己的各 ...

  6. Java Netty (2)

    通过一个实例来说明Netty的使用.用1个服务器连接5个客户端线程,客户端连接上服务器以后就向服务器发送消息,服务器接收到消息后向客户端返回消息,客户端接收到消息以后,等待随机的时间,再向服务端发送消 ...

  7. Statement、PreparedStatemnt、CallableStatement

    第一.Statement(Statement代表一个特定的容器,来对一个特定的数据库执行语句) * 执行查询的方法 Statement=Connection.createStatement();//创 ...

  8. Mongostat 2.6详解

    Mongostat C:\Users\John>Mongostat connected to: 127.0.0.1 insert query update delete getmore comm ...

  9. 〖Android〗CyanogenMod同步错误的解决

    1. 错误信息: repo sync CyanogenMod/Superuser Fetching project CyanogenMod/Superuser Fetching projects: % ...

  10. Linux 防火墙Iptables

    1.规则链INPUT——进来的数据包应用此规则链中的策略OUTPUT——外出的数据包应用此规则链中的策略FORWARD——转发数据包时应用此规则链中的策略PREROUTING——对数据包作路由选择前应 ...