今天碰到一个问题,测试童鞋希望把tomcat的报错日志报错到数据库中,结果调用insert into的时候,报ORA-01704。

INSERT INTO SYSTEM.QYQTEST2021(ID, MLOG) VALUES(3, '好长好长的字符串..');报错:ORA-01704:字符串文字太长

解决方案,声明一个变量v_clobsql

DECLARE v_clobsql CLOB;
BEGIN
v_clobsql := '好长的字符串';
INSERT INTO SYSTEM.QYQTEST2021(ID, MLOG) VALUES(3, v_clobsql);
COMMIT;
END;

引起原因

因为oracle在插入CLOB的数据默认会以varchar2的类型插入,所以当超过4000个字符时就会报ORA-01704的错误了(varchar2类型的字符长度是4000,注意:oracle对汉字的存储占3个字符)

测试案例:


DECLARE v_clobsql CLOB;
BEGIN
v_clobsql := '
create table system.qyqtest2021(id varchar2(200),mlog clob
);创建JavaBeanpackage cn.com;public class test{private String id;private String text;
解决方式:使用变量,通过PL/SQL将数据赋予CLOB变量,通过引用变量将数据插入mybatis具体XML内容如下:<insert id="insert" parameterType="cn.com.test">DECLAREV_LANG CLOB := #{text,jdbcType=CLOB};BEGININSERT INTO test(ID, MLOG) VALUES(#{id,jdbcType=VARCHAR}, V_LANG);END;
</insert>
';
INSERT INTO SYSTEM.QYQTEST2021(ID, MLOG) VALUES(3, v_clobsql);
COMMIT;
END;

oracle插入CLOB类型超过4000个字符报ORA-01704错的解决方法相关推荐

  1. oracle插入CLOB类型超过4000个字符报ORA-01704错的解决方法及其它相关场景解决方案...

    最近有位朋友问我:开发中向CLOB字段存储string时报了ORA-01704的错误不知道怎么解决.首先造成这个问题的原因相信大家都明白,就是因为插入的字符串过长导致,因为oracle在插入CLOB的 ...

  2. oracle截取clob类型

    clob类型超过4000无法用to_char--substr(字符串,截取开始位置,截取长度)=返回截取的字 select substr('miaoying',0,1) from dual;--返回结 ...

  3. oracle xmltype转字节,extractvalue处理XMLTYPE类型超过4000字节ORA-01706的解决方法

    extractvalue处理XMLTYPE类型超过4000字节ORA-01706的解决方法 发布时间:2020-08-14 15:40:17 来源:ITPUB博客 阅读:226 作者:guocun09 ...

  4. python连接oracle数据库 插入clob类型数据

    python连接oracle数据库 插入clob类型数据 连接数据库 import cx_Oracle as cx #导入模块 con = cx.connect('root', 'root123', ...

  5. oracle clob 类型条件,Oracle中Clob类型如何处理?

    Oracle中Clob类型处理解析最近利用NHibernate映射类型为Clob字段在插入数据时发现当字符的字节数(一个半角字符一个字节,一个全角字符两个字节)在 2000-4000之间时报错(ORA ...

  6. oracle插入数字类型能用单引号括起来为什么

    oracle插入数字类型能用单引号括起来为什么 2014-02-24 18:30匿名 | 浏览 631 次 create table emp(id number,name varchar2(20)); ...

  7. Oracle查询CLOB类型字段的内容:

    Oracle查询CLOB类型字段的内容: (1)数据长度<4000时,查询CLOB类型的数据: select dbms_lob.substr(字段名) as 别名 from 表名----别名必须 ...

  8. mybatis没有clob类型_mybatis将Oracle的Clob类型转成String的方法

    默认情况下,mybatis将oracle的Clob类型查询出来,结果是oracle.sql.CLOB@13cda7c9这样的. 下面是将CLOB类型转换成String的方法 首先,添加一个转换的类,实 ...

  9. android ellipsize 多行,android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法...

    android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法 布局文件中的TextView属性 复制代码 代码如下: android:id="@+id/b ...

最新文章

  1. 23岁一无所有怎么办_我搬到国外去创业,然后一无所有。
  2. React基础——快速搭建开发环境
  3. 最长上升子序列之基础
  4. C#读取远端电脑文件的方法
  5. 鼠标拖动div移动js代码
  6. Linux内存信息查看——free命令
  7. 行号 设置vim_在VSCode里面配置Vim正确姿势(细节解析)
  8. Python ValueError: IO operation on closed file
  9. 【CodeForces - 777C】Alyona and Spreadsheet(思维,前缀和)
  10. Audio strage 声音相关
  11. 冈萨雷斯图像处理Matlab函数汇总
  12. GRU门控制循环单元【转载】
  13. python下载安装教程
  14. 树莓派小实验 | 制作一个带快门的照相机 录像机
  15. 计算机硬盘加密的几种方法,对于移动硬盘加密方法 你了解多少种呢?
  16. 设置Windows10系统下电脑屏幕自动关闭的时间(只关闭屏幕,电脑主机不关机)
  17. 图文手把手教程--ESP32 MQTT对接EMQX本地服务器(VSCODE+ESP-IDF)
  18. 医院运维管理平台(模板)
  19. 树展示 移动端_一种手机端树形数据结构的展现方法与流程
  20. 【好玩的策略模拟经营游戏】造物主 Reus for Mac

热门文章

  1. mysql linux root密码忘记了怎么办_linux下忘记mysql root密码解决办法
  2. html设置导入字体样式表,HTML CSS@face 导入字体
  3. OpenShift 4 - Fedora CoreOS (4) - 用 Ignition 定制 CoreOS 的网络/存储等配置
  4. Mongo DB教程及SQL与Mongo DB查询的映射
  5. 使用Windows窗体的C#旋钮控件
  6. 深度学习框架 TensorFlow.NET 0.1.0,完善变量更新操作
  7. 采用信号量机制实现消费者与生产者的线程同步_Java线程通信
  8. python2和python3的默认编码_Python2和Python3中的字符串编码问题解决
  9. python+Django 完成第一个后端项目--创建投票应用(一)
  10. python gil锁_python--GIL锁