oracle clob 类型条件,Oracle中Clob类型如何处理?
Oracle中Clob类型处理解析最近利用NHibernate映射类型为Clob字段在插入数据时发现当字符的字节数(一个半角字符一个字节,一个全角字符两个字节)在 2000-4000之间时报错(ORA-01461:仅可以插入LONG列的LONG值赋值)。
经过不断查找资料和自己的试验该问题终于得到解决,下边我将自己的心得给大家做一个分享。
准备
系统环境 xp+。net2。0+oracle9i
表结构(由于是测试,表结构随便建了一张) XX
字段名
类型
ID
VARCHAR2(70)
TEST
CLOB
测试
方式1:直接将CLOB的值拼写在SQL语句中。
代码:
string id = Guid。NewGuid()。ToString();
OracleCommand cmd = Conn。CreateCommand();
cmd。CommandText = "insert into xx(id,test) values('" + id + "','" + data + "')";// data是一个变量,存储你要插入的字符串
cmd。
ExecuteNonQuery();
情况分析:
当data的长度大于4000时报错(ORA-01704:文字字符串过长),小于或等于4000时正常插入。
原因分析:
之所以会出现长度大于4000时报错,是因为Oracle中有SQL语句中两个单引号之间的字符数不能大于4000的限制。
'" + data + "' data在sql语句之间,当data的值大于4000个字节时就会报错。
解决办法:
这种方式比较棘手,但有更好的方式,下边会讲到 。
方式2:采用参数形式。
代码:
string id = Guid。NewGuid()。
ToString();
OracleCommand cmd = Conn。CreateCommand();
cmd。CommandText = "insert into xx(id,test) values('" + id + "',:p1)";
OracleParameter p1 = new OracleParameter("p1", OracleType。
Clob);
p1。Value = data; // data是一个变量,存储你要插入的字符串
cmd。Parameters。Add(p1);
cmd。ExecuteNonQuery();
情况分析:
采用这种方式能够正常插入。所以推荐用这种方式。
原因分析:
无
解决办法:
无
方式3:采用参数形式,但是参数类型写为OracleType。 NVarChar
代码:
string id = Guid。NewGuid()。ToString();
OracleCommand cmd = Conn。
CreateCommand();
cmd。CommandText = "insert into xx(id,test) values('" + id + "',:p1)";
OracleParameter p1 = new OracleParameter("p1", OracleType。
NVarChar);
p1。Value = data; // data是一个变量,存储你要插入的字符串
cmd。Parameters。Add(p1);
cmd。ExecuteNonQuery();。
全部
oracle clob 类型条件,Oracle中Clob类型如何处理?相关推荐
- oracle Expdp带条件,Oracle 11g expdp中query参数的使用
Oracle 11g expdp中提供了query参数,可以在需要按条件导出表中部分数据时使用,它的使用就像是在select语句中的where条件使用一样. 数据库版本 linuxidc@ORCL&g ...
- oracle 索引命中条件,Oracle索引命中与扫描规律总结 | 学步园
索引扫描类型(该表取自网络文章): index unique scan(索引唯一扫描)通过唯一索引查找一个数值经常返回单个ROWID.如果该唯一索引有多个列组成(即组合索引),则至少要有组合索引的引导 ...
- python布尔类型运算_Python中布尔类型
我们已经了解了Python支持布尔类型的数据,布尔类型只有True和False两种值,但是布尔类型有以下几种运算: 与运算:只有两个布尔值都为 True 时,计算结果才为 True. True and ...
- python语言的三种数字类型_Python语言中的类型之数字类型--Python(10)
数据从不一样的角度能够用不一样的含义去解释它,如: 10,011,101 对上面这个数据,咱们有以下多种含义去解释它: 1)它是1个二进制数字,或者是1个十进制数字: 2)一段文本: 3)用 , 号分 ...
- php 类型提示,PHP中的类型提示(type hinting)功能介绍
PHP中的类型提示(type hinting)功能介绍 这篇文章主要介绍了PHP中的类型提示(type hinting)功能介绍,本文讲解了类型提示的作用和使用方法以及使用示例,需要的朋友可以参考下 ...
- java long类型大小_java中long类型占多少字节
所谓的占用字节数 就是申请内存的时候所占的空间大小. long 8字节 最小值是 -9,223,372,036,854,775,808(-2^63): 最大值是 9,223,372,036,854,7 ...
- c语言函数返回值类型必须,C++中函数类型与定义的函数返回值类型必须相同么?...
C++中函数类型与定义的函数返回值类型必须相同么?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C++中函数类型与定义 ...
- oracle精度说明符1~38_ORACLE 中NUMBER类型默认的精度和Scale问题
在ORACLE数据库中,NUMBER(P,S)是最常见的数字类型,可以存放数据范围为10^-130~10^126(不包含此值),需要1~22字节(BYTE)不等的存储空间.P是Precison的英文缩 ...
- oracle存储过程 多条件,Oracle多条件查询实际分页存储过程实操
以下的文章主要是介绍Oracle多条件查询分页存储过程,以下就是Oracle多条件查询分页存储过程具体方案的描述,希望在你今后的学习中会有所帮助.将业务逻辑放到Oracle中使得后台代码很精简,Ora ...
最新文章
- oracle财务软件凭证打印,金算盘财务软件后台数据库为Oracle
- 初识spring-boot
- C#刨根究底:《你必须知道的.NET》读书笔记系列
- 【编译打包】nginx_1.6.2-1~precise.debian.tar.gz
- Ubuntu 中如何使用 PPA 安装应用程序
- 计算机能否代替老师英语作文,雅思大作文范文:电脑不可取代老师
- 一看就懂的字符串匹配算法 之 BF算法(暴力匹配)
- knx智能照明控制系统电路图_智能照明控制系统(KNX)教材
- dbutils mysql_mysql dbutils
- Real-time Intended Knee Joint Motion Prediction by deep-recurrent neural networks利用深度递归神经网络实时预测膝关节运动
- 转】用Hadoop构建电影推荐系统
- LabVIEW编程LabVIEW开发Fluke8858A/8588A万用表 例程与相关资料
- 通过exif.js简单处理手机照片拍摄图片旋转问题
- PS旋转复制方法制作
- 广东省第四届“强网杯”网络安全大赛(“泄露的秘密WP”)
- 从Map中 取出第一个key/第一个value的方法
- 科技推动,服务创新,科里思特承办莆田市首期茶叶技术培训班活动
- 6成网友睡前不玩手机睡不着 专家称影响生育
- 【Linux】ifconfig命令详解
- 负载均衡和应用优化基础
热门文章
- keytool 工具介绍
- Matlab下地形图绘图包m_map绘图包绘制高分辨率海岸线、国界线与河流
- 机智云OTA过程MCU端程序设计学习(一)
- 用c语言实现复数的加减运算及复数的显示
- 通过百度API获取城市经纬度(1)
- Mac笔记本idea打包maven工程,本地环境运行正常,打包成功,却启动不成功
- linux内核源码制作rpm包,cmatrix源码包制作rpm包
- solr之使用IKAnalyzer配置同义词,停止词,扩展词。
- android 高德地图河流,周边数据-创建地图-开发指南-Android 室内地图SDK | 高德地图API...
- 上海大学计算机学院考研复试经验,上海大学计算机考研复试经验(09年-12年).doc...