如果仅仅在数据库中设置了类型为 CLOB 字段类型,使用普通的 INSERT 语句直接写入数据到数据库的话,它依然会将其视为 VARCHAR 类型数据,并最大长度为 4000 字符。超过该长度会报出字符串超长,写入数据失败的错误。

使用 Dapper 处理 CLOB 数据 INSERT

代码如下:

OracleConnection cnn = new OracleConnection("..数据库链接字符串..");

cnn.Open();

string content = "假定超过4000的超长字符串";

byte[] newValue = Encoding.Unicode.GetBytes(content); //这里一定要使用 Unicode 字符编码

OracleClob p_content = new OracleClob(cnn);

p_content.Write(newValue, 0, newValue.Length);

string sql = "INSERT INTO TABLE(CONTENT) VALUES(:content)";

DynamicParameters parameter = new DynamicParameters();

parameter.Add("content", p_content);

cnn.Execute(sql, parameter);

cnn.Close();

其实跟 Dapper 也没多大关系,在 .Net 中的 Oracle CLOB 需要以上特殊处理下,否则 Dapper 会将其视为普通字符串类型写入。

敲重点,如何 UPDATE CLOB 字段类型的数据

本来没有这一节文章内容的,我认为像 INSERT 同样的方式创建 SQL 参数传入就好了。实际上并不是,UPDATE 需要跟以往同样的方式,直接 string 传参就可以了,以下参考:

OracleConnection cnn = new OracleConnection("..数据库链接字符串..");

cnn.Open();

string content = "假定超过4000的超长字符串";

string sql = "UPDATE TABLE SET CONTENT = :content WHERE ID = :id";

DynamicParameters parameter = new DynamicParameters();

parameter.Add("id", 10001);

parameter.Add("content", content);

cnn.Execute(sql, parameter);

cnn.Close();

你没看错,它不需要再转换为 OracleClob 对象参数了,转换了反而会报错。

oracle的insert语句clob,.Net 操作 Oracle CLOB类型字段 INSERT 超长数据相关推荐

  1. oracle数据库查询需步骤,PLSQL操作Oracle数据库之单表查询SQL语句 看完你就知道了...

    Orcale数据库作为商业级的大型关系型数据库管理系统,以其较高的安全性和强大的可移植性赢得了市场的广泛认可,而PLSQL作为操作Oracle的编程语言的最佳选择,掌握其编程原理及基本的sql操作是掌 ...

  2. ef导入oracle数据类型不正确,EF Core操作Oracle踩坑记

    EF(Entity Framework)是微软标志性且成熟的ORM,从之前的.NET Framework时代就已经很常见了,但是给人的感觉还是偏"重",性能被不少人吐槽,倒是像Da ...

  3. oracle创建dblink语句_多个Oracle数据库联合做统计分析

    近期完成了一个精益管理项目(提升员工渗透率),主要用于统计各个单位在统计时间段内的业务渗透情况.从下面的日程计划表可以看出是一个持续改进的项目,其中核心支持数据就是本项目所要描述的多个Oracle数据 ...

  4. oracle中SQL语句ge的用法,Oracle中SQL语句的几种用法

    在诊断数据库系统性能的过程中,总会涉及到跟踪效率低下的SQL语句,Oracle数据库10g包含一种新的实用程序trcsess,它可以让您基于会话ID或模块名称之类的条件,有选择地从大量跟踪文件中抽取出 ...

  5. oracle中DDL语句什么意思,执行oracle DDL语句要注意的问题

    在执行DDL语句的时候时候,实际上的伪代码如下(摘自: Expert.Oracle.Database.Architecture.9i.and.10g.Programming. Techniques.a ...

  6. oracle中sql语句拼接单引号,oracle 单引号拼凑和动态sql

    a.单引号问题(') 在oracle中4个单引号''''代表一个单引号'.在动态sql拼凑中我们经常需要拼凑单引号.比如: 变量 中带单引号:IV_DATE_FORMAT:=''''||'YYYYMM ...

  7. sql查询语句,在表中的一个字段的部分数据中查看其他字段

    select user_desc,guid from eip_uam_sync_user where user_desc in ('刘文强','陈松扬','李亨利','彭棱山','李茂森','邱晨文' ...

  8. Oracle INSERT 语句

    -- Start 方法1 我估计有点 SQL 基础的人都会写 INSERT 语句.下面是 SQL 标准写法. INSERT INTO employees (employee_id, name) VAL ...

  9. Oracle数据库基本知识与SQL操作(1)

    登录数据库方式:     超级管理员:system +密码     Conn sys/pwd as sysdba     windows打开sql plus 命令:sqlplus /nolog 一.查 ...

最新文章

  1. setTimeout(0) 即将退役
  2. 设置SpringMVC默认首页启动
  3. POJ 3237 树链剖分学习(树链剖分小结)
  4. alertdialog android api 11,android – 设备api级别11的DialogFragments
  5. 需求说明 用户登陆功能的实现 c#
  6. 使用Nacos搭建微服务注册中心和配置中心(二)
  7. linux nona怎么用_Linux nano编辑器命令常用方法
  8. Unable to open log device '/dev/log/main' : No such file or directory it ...
  9. linkedlist 最难题 Insert into a Cyclic Sorted List
  10. linux 关闭系统自动更新,Linux下如何关闭自动更新
  11. 三菱plc恒压供水程序+威纶触摸屏程序 以控制水泵一用一备、一拖二、一拖三、一拖四、一拖四带小泵恒压功能
  12. 手机二维码软件及资源大汇总
  13. 使用diagrams.net(draw.io)绘制思维导图
  14. 【STM32】5分钟了解STM32的串口通信
  15. 在控制台程序中隐藏控制台窗口!
  16. ubuntu 查看usb设备
  17. cmd - 切换目录命令cd失效(切换目录失效)
  18. 03-JSX的语法规则
  19. 信创云“华山论剑” 五强鼎力谁与争锋?
  20. 【牛客网】 小白月赛16 J题 小雨坐地铁

热门文章

  1. Android 基本测试工具的使用
  2. Java_BigInteger
  3. 自学html和css,学习HTML和CSS的5大理由
  4. 深入了解HashMap
  5. Oracle 并行查询
  6. wrf 嵌套网格作用_在网格系统中使用响应列,嵌套列和偏移列 引导程序
  7. stringreader_Java StringReader markSupported()方法与示例
  8. ue4模型导出_MAYA动画导出以及导入UE4的方式、方法
  9. python重载模块_Python 3.0中重载模块
  10. python爬虫requests源码链家_Python爬虫之---爬链家