最近因为业务需求开发了一个接口用于接收数据,但是总有一些数据报出ORA-01704:字符串文字太长错误。仔细排查后发现,竟然是NCLOB类型字段提示这个错误。NCLOB存储空间有4G,怎么也想不明白为什么会报这个错误。原来因为接口插入数据采用字符串拼接的方式。

1 string strSql = "insert into tablename (id) values ('" + id.ToString() + "')";

而oracle中会把字符串转为varchar2类型,当字符串非常长,超过4000字符时,就会报ORA-01704错误。

所以为了正确插入NCLOB或者CLOB类型的数据,需要如下面写法

string strSql = "insert into tablename (id) values (:id)";Database db = DatabaseFactory.CreateDatabase();DbCommand cmd = db.GetSqlStringCommand(strSql);

OracleParameter oracPara = new OracleParameter("id", OracleType.NClob);oracPara.Value = idvalue;

cmd.Parameters.Add(oracPara);

db.ExecuteNonQuery(cmd);

转载于:https://www.cnblogs.com/lyxgy841/p/8179510.html

往Oracle数据库中插入NCLOB/CLOB类型数据相关推荐

  1. Oracle数据库中字符串相关字段类型辨析

    本文来自李明子csdn博客(http://blog.csdn.net/free1985),商业转载请联系博主获得授权,非商业转载请注明出处! 1 引子 字符串类型的字段在各关系数据库中均占有重要地位. ...

  2. oracle数据库插入多表,在Oracle数据库中插入嵌套表

    我是PL/SQL数据库的新学习者,这是一种给apex.oracle.com上的数据库应用指定序列的练习.然后我创建了表格,但是当填充与插入的代码如下所示,应用赋予错误,表你不介意,我需要你的帮助在Or ...

  3. 如何向Oracle数据库中插入带有特殊符号“”的数据

    今天在向Oracle数据库中插入数据的时候遇到了下面这个错误: 经过了一番排查之后,发现弹出这个对话框的原因是我插入的数据中有"&"这个符号, 因为要插入数据的表中有url ...

  4. Oracle数据库中插入日期型数据

    如果插入Oracle的当前系统时间可以用 SYSDATE INSERT INTO FLOOR VALUES ( SYSDATE ) ; 往Oracle数据库中插入日期型数据(to_date的用法) 今 ...

  5. java向Oracle数据库中插入blob字段数据

    java不能直接想插入其他普通类型数据一样插入blob字段数据,因为blob相当于一个大文件块,里面有游标,需要初始化blob游标才能插入数据.所以我们要先插入一个空的blob数据,以初始化游标,然后 ...

  6. oracle查询记录插入,我应该使用哪种查询语法在Oracle数据库中插入记录?

    我是一个初学者,试图用C#创建一个简单的程序来插入和更新Oracle数据库中的记录.我已经成功地连接到数据库,但是我的SQL语句出现异常,该异常指出不支持(?)符号.为什么会出现此异常,该如何解决? ...

  7. 在oracle符号,学在oracle数据库中插入特殊符号

    oracle 特殊字符的插入 环境配置: server:9 db server: oracle817.4 client os:windows2000 pro oracle client: oracle ...

  8. oracle数据库的blob和clob类型,是什么意思和区别

    BLOB和CLOB都是大字段类型,BLOB是按二进制来存储的,而CLOB是可以直接存储文字的.其实两个是可以互换的的,或者可以直接用LOB字段代替这两个.但是为了更好的管理ORACLE数据库,通常像图 ...

  9. 如何向Oracle数据库中插入带特殊符号“”的数据

    insert into p_product(productId, productName) values(1, '手机&电脑'); 这条插入语句在plsql中不能正常执行,会弹出下图所示的框: ...

最新文章

  1. Spark集群模式概述
  2. 快讯 | 美国投资公司Avenue Capital Group联合创始人Marc Lasry:比特币价格可能达到40,000美元...
  3. 设置更改root密码 ,连接mysql,mysql常用命令
  4. Linux下批量添加用户的两种方法
  5. redis和mysql实现原理_redis和mysql结合数据一致性方案
  6. 【BZOJ3387】[Usaco2004 Dec]Fence Obstacle Course栅栏行动 线段树
  7. java中JScrollPane不显示水平滚动条的解决办法
  8. 如何把很多照片拼成一张照片_一张现场照片引发的中韩之争
  9. HDURevenge of Segment Tree(第二长的递增子序列)
  10. Oracle VM + Windows2003 Server 配置
  11. 20170908-构建之法:现代软件工程-阅读笔记
  12. DynamicResource与StaticResource的区别
  13. 每周分享第 26 期
  14. python进程/线程/协成
  15. 在记事本中无限循环_意外空间:比恐怖游轮更无解的循环迷宫
  16. Java 对接打印机接口
  17. NET Namespace(1)
  18. JavaSwing_4.5: JMenuBar(菜单栏)
  19. C/C++ 创建多级文件夹(mkdir)
  20. Argo CD系列视频图文版之手把手教你搭建Argo CD 实验环境

热门文章

  1. html中如何使图片自动旋转90度,css实现图片旋转90度的方法
  2. 软件测试面试题:测试的策略有哪些?
  3. 进制转换2(清华大学上机复试题)
  4. 从0到1优雅实现沉浸式状态栏
  5. VLFeat开源库初体验
  6. 每日一题 11.9 整数转换英文表示
  7. 天了噜!程序媛离职,为宣泄不满rm-f×删库,客运总站瘫痪 6 个小时
  8. 基于SSM校园宿舍管理系统
  9. 企业里只有8种人,谁是有用的?
  10. 基于 MNIST 数据集的 Pytorch 卷积自动编码器