oracle数据库clob字段处理 您所在的位置:网站首页 oracle数据库clob类型的内容如何比对 oracle数据库clob字段处理

oracle数据库clob字段处理

2023-08-31 03:51| 来源: 网络整理| 查看: 265

Oracle数据库CLOB字段提示ORA-01704:字符串文字太长的处理方法 1.方法一:插入的SQL比较少,那么可以人工处理。

针对可以使用PL/SQL工具连接的数据库:

1、打开PL/SQL工具,输入SQL语句,如下:

select * from 表名 for UPDATE;

2、把更新的小锁打开,找到CLOB字段,点击 ‘…’, 将内容复制进来,点击’确定’按钮,点击绿色对勾提交即可。

2.方法二:如果插入的SQL比较多,那么需要先把所有的SQL语句插入到表中,然后对SQL语句进行处理。

首先需要找规律,找到规律了,然后用PL/SQL块进行插入或更新即可。 对Oracle数据库插入或者更新CLOB字段的时候,直接拼接了一个INSERT INTO和UPDATE语句,类似下面这种: INSERT INTO 表名(字段1, 字段2, CLOB字段) VALUES (‘XX’, ‘XXX’, ‘内容非常多’); UPDATE 表名 T SET T.CLOB字段名 = ‘内容非常多’;

oracle默认把字符串转换成varchar2类型,而这个字符串的长度,又比4000大,所以会报ORA-01704错误。 说得通俗一点,就是两个单引号之间的字符不能超过4000。

解决办法:使用PL/SQL语法,采取绑定变量的方式解决,而不是直接拼接SQL

DECLARE clobValue 表名.字段名%TYPE; BEGIN clobValue := 'XXX'; ----字段内容,但是单引号中的内容不能超过4000字符 UPDATE 表名 T SET T.字段名 = clobValue WHERE 条件; COMMIT; END; / --采取绑定变量 2 DECLARE V_LANG CLOB := '待插入的海量字符串'; V_UPDATE CLOB := '更新的海量字符串'; BEGIN INSERT INTO temp t VALUES ('Grand.Jon', 22, V_LANG); --增加 UPDATE temp t SET t.temp_clob = V_UPDATE WHERE rownum = 1; --修改 SELECT t.NAME, dbms_lob.substr(t.temp_clob) FROM TEMP t; --查询  将CLOB转成字符类型 DELETE temp t WHERE rownum = 1; --按列删除   COMMIT; END; / -- insert多个绑定变量 declare v_clob1 clob:='一个长文本1'; v_clob2 clob:='一个长文本2'; begin insert into 表名 values('1',v_clob1,v_clob2); end; / 3.方法三 使用sql命令插入clob数据(大于4000,适用于18c)

–使用sql命令插入clob数据(大于4000,适用于18c)

INSERT INTO XXXX.XXXX (UPDATE_TIME, FILE_NAME, FILE_TYPE, CONTENT) VALUES (TO_TIMESTAMP('22-10月-20 02.30.45.000000000 下午', 'DD-MON-RR HH.MI.SSXFF AM'), 'CCCCC_2020-10-16.RB', 'test5', TO_CLOB(q'[]') || TO_CLOB(q'[]') || TO_CLOB(q'[]') || TO_CLOB(q'[]')); --在q'[]’中填写小于4000个字符的值,如果有9000个,就分成三段,如: INSERT INTO XXXX.XXXX (UPDATE_TIME, FILE_NAME, FILE_TYPE, CONTENT) VALUES (TO_TIMESTAMP('22-10月-20 02.30.45.000000000 下午','DD-MON-RR HH.MI.SSXFF AM'), 'CCCCC_2020-10-16.RB', 'test5', TO_CLOB(q'[AAAAAAAAAAAAAAAAAAAAA]') || TO_CLOB(q'[BBBBBBBBBBBBBBBBB]') || TO_CLOB(q'[CCCCCCCCCCCCCCCCCCC]'));

–其他参考方法 https://blog.51cto.com/u_11310506/2431176



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有