oracle如何储存超长汉子_oracle Clob 存储超长字符
遇到过一些比较奇葩的需求,对应奇葩的需求,所以就产生了一些奇葩的解决方案:
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 存储超长字符相关推荐
- clob oracle 连接_Oracle clob 操作
--Oracle clob 操作 -- Created on 2015/4/8 by TianPing declare -- Local variables here v_clob1 Clob; v_ ...
- oracle数据库中用sql拼接字符串和转成clob存储在数据库中
1.转成字符串,存储到数据库中 -- B.DESCRIPT73,为需要转换的字段 --||'<br />'则代表在需要转换的字段后面拼接上一个换行符,存到数据库中 select F.POL ...
- code函数oracle列子,Oracle 8 的函数介绍_oracle
这些函数允许你存取 oracle8 和 Oracle7 数据库. 他使用 Oracle8 的点用接口 (OCI8). 使用这个扩展模块,你需要 Oracle8 客户端库文件. 这个扩展模块比标准 Or ...
- 存clob为空的值_oracle clob 存储空间
ORACLE clob字段整理 一.CLOB字段的业务说明:CLOB为字符LOB,是LOB 的一种.这种类型用于存储大量的文本信息,如XML 或者只是纯文本.这个数据类型需要进行字符集转换,也就是说, ...
- oracle 修索引改空间_oracle 修改索引现有表空间
工作日记之<修改索引现有表空间> //dba_indexes可查询所有索引,以及索引部分信息,可以灵活运用于其他用途 //假设用户USER1现有表空间TS1.TS2,需要迁移其下所有表空间 ...
- Oracle迁移到mysql字符集_oracle数据库字符集characterset迁移及变更系列一
背景 oracle数据库字符集和应用数据密切相关,数据库迁移也会涉及到数据库字符集的转换,大家常常听到的乱码之类的,导出导入表发生列长度不足的错误,也和数据库字符集不无关系, 本文我沿袭前文:http ...
- oracle 加载数据戽_oracle数据库数据导入导出步骤(入门)
oracle数据库数据导入导出步骤(入门) 说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp ...
- MySQL数据库与Oracle数据库在存储中文字符以字节或字符存储的区别
一.Oracle数据库存储中文字符 Oracle数据库可以以字节或者字符来存储字符串的,一般来说默认是存储字节,你可以查看数据库NLS_LENGTH_SEMANTICS的值. 可以看到Oracle数据 ...
- Oracle 列由VARCHAR2改为CLOB类型
最近突然遇到好多Oracle 列由VARCHAR2改为CLOB类型的需求,不知道大家是不是约好了...查了一些网上的文章,结合实际修改的情况记录一下各种场景及解决方法. 一. 示例准备 新建两张表TB ...
- 存储英文字符字段类型用什么?
char.varchar.text和nchar.nvarchar.ntext的区别varchar在SQL Server中是采用单字节来存储数据的,nvarchar是使用Unicode来存储数据的.中文 ...
最新文章
- 【Qt】在ubuntu14.04上安装Qt5.12(失败)
- Oracle 查询结果去重保留一项
- MySQL数据库基础(三)数据的导入导出、管理表记录、匹配条件
- 【直播回放】新手如何入门并学习自然语言处理
- C#的未来:简化参数空值验证
- Java:汇总堆外数据
- 前端vue适配不同的分辨率_前端面试时,被问到项目中的难点有哪些?
- mysql sql select for update_mysql SELECT FOR UPDATE语句使用示例
- 临沧财校计算机应用,2019临沧中职学校名单大全
- Java 泛型List clone
- 3.2 语音识别概述
- 基于神经网络的预测模型控制器matlab仿真
- 5.8G微波雷达模块使用,5.8G微波雷达模块工作原理和介绍
- Oracle的overlaps函数转换其他数据库语法
- shader 获取法线_Unity Shader-法线贴图(Normal)及其原理
- 一图弄懂Arthas——Java故障定位神器
- 中科院计算机博士论文致谢火了!网友:读完已是泪流满面……
- 自定义/修改微信二维码样式
- 在OPPO应用市场内如何做ASO优化
- 计算机名弹出输入网络密码错误,win10系统登录网络打印机出现用户名和密码错误的设置办法...
热门文章
- 38.Linux/Unix 系统编程手册(下) -- 编写安全的特权程序
- 31.URL 管理(2)
- 2. 创建多网站和商店(Creating Multiple Websites and Stores)
- 我得新博客上线了采用Vue+Layui的结合开发,后台采用asp.net mvc
- 2019年7月19日星期五(交叉编译工具)
- Centos 部署.net Core
- Anaconda换源及常用命令
- Python Compiling Environment (Anaconda+VS code+GitKraken+Github)
- session用户账号认证(一个用户登陆,踢出前一个用户)
- Spring的DI(Ioc) - 利用构造器注入