遇到过一些比较奇葩的需求,对应奇葩的需求,所以就产生了一些奇葩的解决方案:

1)Sql Insert 时,字符中字符串不能含有单引号,否则就引起数据库插入错误

例:在处理一个错误机制时,需要保存该API请求的Url,如果该字段为字符串 insert时单引号将会报错。

所以用了一个比较笨的办法,编译,将单引号编译成两个单引号,使用的时候编译回来 Url.Replace("'", "''");

2)需要存储很大数量的字符串,而字符的数据量并不受我们控制,必须是来者不拒,像varchar2 varchar 对字符存储是有限制的,并不符合需求,只有Clob 类型可以满足我们的需求。

但是Clob 有一个问题就是,字符超过4000就会出现报错,字符长度过长,虽然这个字符储存量非常大,但是需要进行处理。

在网上找到两种解决方案,一种使用参数的形式来,但是我不想使用函数或者是储存过程,一种是拼接Update,就直接淘汰掉

使用了另外一种方法:

:req 类似于一个占位符

string strSql = string.Empty;

OracleConnection con= newOracleConnection(conn);try{if (string.IsNullOrEmpty(request))

{

request= " ";

}

strSql= @"insert into ""TableName""(""id"",""request"")

values ('{0}',:req)";

strSql= string.Format(strSql, id);if (con.State ==ConnectionState.Closed)

{try{

con.Open();

}catch(Exception e)

{throwe;

}

}string sqlText =strSql;using (OracleCommand cmd = newOracleCommand(sqlText, con))

{

OracleParameter oracleParameter1= new OracleParameter("req", OracleType.Clob);

oracleParameter1.Value=CommonUtil.FilteSQLStr(request);

cmd.Parameters.Add(oracleParameter1);

cmd.ExecuteNonQuery();

}

这样就可以解决这个问题了

oracle如何储存超长汉子_oracle Clob 存储超长字符相关推荐

  1. clob oracle 连接_Oracle clob 操作

    --Oracle clob 操作 -- Created on 2015/4/8 by TianPing declare -- Local variables here v_clob1 Clob; v_ ...

  2. oracle数据库中用sql拼接字符串和转成clob存储在数据库中

    1.转成字符串,存储到数据库中 -- B.DESCRIPT73,为需要转换的字段 --||'<br />'则代表在需要转换的字段后面拼接上一个换行符,存到数据库中 select F.POL ...

  3. code函数oracle列子,Oracle 8 的函数介绍_oracle

    这些函数允许你存取 oracle8 和 Oracle7 数据库. 他使用 Oracle8 的点用接口 (OCI8). 使用这个扩展模块,你需要 Oracle8 客户端库文件. 这个扩展模块比标准 Or ...

  4. 存clob为空的值_oracle clob 存储空间

    ORACLE clob字段整理 一.CLOB字段的业务说明:CLOB为字符LOB,是LOB 的一种.这种类型用于存储大量的文本信息,如XML 或者只是纯文本.这个数据类型需要进行字符集转换,也就是说, ...

  5. oracle 修索引改空间_oracle 修改索引现有表空间

    工作日记之<修改索引现有表空间> //dba_indexes可查询所有索引,以及索引部分信息,可以灵活运用于其他用途 //假设用户USER1现有表空间TS1.TS2,需要迁移其下所有表空间 ...

  6. Oracle迁移到mysql字符集_oracle数据库字符集characterset迁移及变更系列一

    背景 oracle数据库字符集和应用数据密切相关,数据库迁移也会涉及到数据库字符集的转换,大家常常听到的乱码之类的,导出导入表发生列长度不足的错误,也和数据库字符集不无关系, 本文我沿袭前文:http ...

  7. oracle 加载数据戽_oracle数据库数据导入导出步骤(入门)

    oracle数据库数据导入导出步骤(入门) 说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp ...

  8. MySQL数据库与Oracle数据库在存储中文字符以字节或字符存储的区别

    一.Oracle数据库存储中文字符 Oracle数据库可以以字节或者字符来存储字符串的,一般来说默认是存储字节,你可以查看数据库NLS_LENGTH_SEMANTICS的值. 可以看到Oracle数据 ...

  9. Oracle 列由VARCHAR2改为CLOB类型

    最近突然遇到好多Oracle 列由VARCHAR2改为CLOB类型的需求,不知道大家是不是约好了...查了一些网上的文章,结合实际修改的情况记录一下各种场景及解决方法. 一. 示例准备 新建两张表TB ...

  10. 存储英文字符字段类型用什么?

    char.varchar.text和nchar.nvarchar.ntext的区别varchar在SQL Server中是采用单字节来存储数据的,nvarchar是使用Unicode来存储数据的.中文 ...

最新文章

  1. 【Qt】在ubuntu14.04上安装Qt5.12(失败)
  2. Oracle 查询结果去重保留一项
  3. MySQL数据库基础(三)数据的导入导出、管理表记录、匹配条件
  4. 【直播回放】新手如何入门并学习自然语言处理
  5. C#的未来:简化参数空值验证
  6. Java:汇总堆外数据
  7. 前端vue适配不同的分辨率_前端面试时,被问到项目中的难点有哪些?
  8. mysql sql select for update_mysql SELECT FOR UPDATE语句使用示例
  9. 临沧财校计算机应用,2019临沧中职学校名单大全
  10. Java 泛型List clone
  11. 3.2 语音识别概述
  12. 基于神经网络的预测模型控制器matlab仿真
  13. 5.8G微波雷达模块使用,5.8G微波雷达模块工作原理和介绍
  14. Oracle的overlaps函数转换其他数据库语法
  15. shader 获取法线_Unity Shader-法线贴图(Normal)及其原理
  16. 一图弄懂Arthas——Java故障定位神器
  17. 中科院计算机博士论文致谢火了!网友:读完已是泪流满面……
  18. 自定义/修改微信二维码样式
  19. 在OPPO应用市场内如何做ASO优化
  20. 计算机名弹出输入网络密码错误,win10系统登录网络打印机出现用户名和密码错误的设置办法...

热门文章

  1. 38.Linux/Unix 系统编程手册(下) -- 编写安全的特权程序
  2. 31.URL 管理(2)
  3. 2. 创建多网站和商店(Creating Multiple Websites and Stores)
  4. 我得新博客上线了采用Vue+Layui的结合开发,后台采用asp.net mvc
  5. 2019年7月19日星期五(交叉编译工具)
  6. Centos 部署.net Core
  7. Anaconda换源及常用命令
  8. Python Compiling Environment (Anaconda+VS code+GitKraken+Github)
  9. session用户账号认证(一个用户登陆,踢出前一个用户)
  10. Spring的DI(Ioc) - 利用构造器注入