问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

oracle中blob,clob,nclob主要区别是什么?

发布网友 发布时间:2022-04-25 15:48

我来回答

3个回答

懂视网 时间:2022-04-30 03:57

    最近利用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();

情况分析:

    为什么要写这种方式,因为这种方式和采用NHibernate的方式很相似,先看看在这种方式会产生什么情况。当data的字节数在0-2000之间时正常插入,大于4000时也正常插入,但在2000-4000时则失败,报错(ORA-01461:仅可以插入LONG列的LONG值赋值)

原因分析:

   没有采用对应的Oracle类型。

解决办法:

   采用OracleType.Clob

 

 

Oracle中Clob类型处理解析

标签:

热心网友 时间:2022-04-30 01:05

一、指代不同

1、blob:是指图像中的一块连通区域,Blob分析就是对前景/背景分离后的二值图像。

2、clob:是内置类型,将字符大对象 (Character Large Object) 存储为数据库表某一行中的一个列值。

3、nclob:长度可变的字符大对象。

二、特点不同

1、blob:对运动目标在图像平面上的轨迹进行估计的问题。

2、clob:CLOB 对象包含一个指向 SQL CLOB 数据的逻辑指针而不是数据本身。Clob 对象在被创建的事务处理期间有效。

3、nclob:大小可变的CLOB 对象,指向 SQL CLOB 数据的逻辑指针。


三、数据保存方式不同

1、blob:就是使用二进制保存数据。

2、clob:CLOB使用CHAR来保存数据。

3、nclob:使用NCHAR来保存数据。

参考资料来源:百度百科-CLOB

参考资料来源:百度百科-blo

热心网友 时间:2022-04-30 02:23

BLOB全称为二进制大型对象(Binary Large Object)。它用于存储数据库中的大型二进制对象。可存储的最大大小为4G字节CLOB CLOB全称为字符大型对象(Character Large Object)。它与LONG数据类型类似,只不过CLOB用于存储数据库中的大型单字节字符数据块,不支持宽度不等的字符集。可存储的最大大小为4G字节NCLOB 基于国家语言字符集的NCLOB数据类型用于存储数据库中的固定宽度单字节或多字节字符的大型数据块,不支持宽度不等的字符集。可存储的最大大小为4G字节BFILE 当大型二进制对象的大小大与4G字节时,BFILE数据类型用于将其存储在数据库外的操作系统文件中;当其大小不足4G字节时,则将其存储在数据库内部的操作系统文件中,BFILE列存储文件定位程序,此定位程序指向服务器上的大型二进制文件。
oracle中blob,clob,nclob主要区别是什么?

一、指代不同 1、blob:是指图像中的一块连通区域,Blob分析就是对前景/背景分离后的二值图像。2、clob:是内置类型,将字符大对象 (Character Large Object) 存储为数据库表某一行中的一个列值。3、nclob:长度可变的字符大对象。二、特点不同 1、blob:对运动目标在图像平面上的轨迹进行估计的问...

Load Port、SMIF

威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...

oracle中blob,clob,nclob主要区别是什么?

BLOB全称为二进制大型对象(Binary Large Object)。它用于存储数据库中的大型二进制对象。可存储的最大大小为4G字节 CLOB CLOB全称为字符大型对象(Character Large Object)。它与LONG数据类型类似,只不过CLOB用于存储数据库中的大型单字节字符数据块,不支持宽度不等的字符集。可存储的最大大小为4G字节 N...

oracle中blob,clob,nclob,Bfile主要区别是什么? .

CLOB 字符型大对象。一般存储大数量文本信息。存储单字节,固定宽度的数据。NCLOB 字节字符大对象。存储单字节大块,多字节固定宽度 Bfile和clob,nclob,blob是不同的。Bfile是外部的lob类型,其他三个是oracle内部的lob类型,它们至少有三点主要不同的地方:1. bfile的值是存在操作系统的文件中,...

oracle 某个表的字段里面的值是<clob>是什么意思

blob:二进制lob,为二进制数据,最长可达4GB,存贮在数据库中。clob:字符lob,字符数据,最长可以达到4GB,存贮在数据库中。bfile:二进制文件;存贮在数据库之外的只读型二进制数据,最大长度由操作系统限制。nclob:支持对字节字符集合(nultibyte characterset)的一个clob列。

oracle 某lob>是什么意思

Oracle数据库提供了四种大对象(LOBs)数据类型,它们分别是blob、clob、bfile和nclob,以满足不同类型数据的存储需求。首先,blob(Binary Large Object)是二进制LOB,专为存储二进制数据设计,其最大容量可达4GB,所有的数据都存储在数据库内部。这使得blob非常适合存放图像、音频或视频等非文本文件。clob...

oracle数据库我用PL/SQL建表有些字段的标识我看不懂.麻烦解释一下!_百 ...

blob,clob,nclob 三种大型对象(LOB),用来保存较大的图形文件或带格式的文本文件,如Miceosoft Word文档,以及音频、视频等非文本文件,最大长度是4GB。LOB有几种类型,取决于你使用的字节的类型,Oracle 8i实实在在地将这些数据存储在数据库内部保存。可以执行读取、存储、写入等特殊操作。interval d...

ORACLE的常见数据类型

BLOB/CLOB/NCLOB: 大型对象数据类型,用于存储大文本或非文本文件,最大长度4GB,支持读写操作。 NROWID: 二进制数据表中记录的唯一行号,格式10 bytes。 NUMBER: 数值类型,包括P,S参数,如NUMBER(5,2)表示最多5位数,2位小数。 INTEGER/FLOAT/REAL: 整数、浮点数和精度更高的实数类型。 RA...

ORACLE中有哪些数据类型

lob分类:clob:用于存储大型文本数据。(例如:备注信息)blob:用于存储二进制数据。(例如:图片文件)bfile:作为独立文件存在的二进制数据。5、特殊数据:null与空字符串:null与空字符串,都要用is null或is not null进行比较。单引号:想将单引号做为字符中使用,请通过单引号进行转义。6、注意:...

java 大字符串转为二进制流存入CLOB字段 JDBC方法

我以前写程序发现:oracle的数据库BLOB不能用来存储字符,改用NCLOB就OK了。BLOB:用来存储无结构的二进制数据 CLOB:存储单字节字符数据。(别用来存中文喔。。。)NCLOB:用来存储定宽多字节字符数据。

oracle存储6000长度的字符串

NCHAR 定长字符串,存储的数据为 NLS字符 VARCHAR2 变长字符串,最长4000字节 NVARCHAR2 变长字符串,存储的数据为 NLS字符 LONG 最大存储2G字符数据不推荐使用(改用CLOB)CLOB Oracle 9i 及以前,最大4G字符数据Oracle10g 最大4G*数据库块大小的字符数据 NCLOB 基本同CLOB,就是...

blob和clob区别 oracle怎么导出blob oracle varchar2 oracle查看blob内容 clob对应java什么类型 oracle clob类型 oracle数据库clob oracle更新clob字段 oracle导出clob
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抖音仅一人可见的作者知道吗? 白歆惠最新消息 白歆惠主要作品 白钦惠基本资料 风电运维公司有哪些 白歆惠出席节目 白歆惠主持经历 白歆惠人物轶事 ...唱的lalalali,lulalulali(啦啦啦啦哩,噜啦噜啦哩) ...今年6岁,想给孩子起个小名,望各位高手指点!!! 有哪些少女的日系穿搭? 数据库CLOB型字段是什么数据类型? 适合男生的日系穿衣搭配,大家都知道什么? oracle中Blob和Clob类型的区别是什么? 打造属于女生的日系工装风格,这该从哪里入手? 你觉得日系服装搭配的关键是什么? 日系春季服装搭配技巧 日系服装搭配技巧有几个 服装搭配的日系搭配 日系服装搭配技巧有几个 5个搭配技巧穿出好气质 有哪些值得推荐的日系简约搭配? 苹果手机误点今晚安装,如何取消安装 什么是规则? 怎么取消苹果系统自动安装 规则是什么? 爱情公寓里挂二垒什么意思? 成熟男人谈恋爱会干些什么 二垒没挂上什么意思 二垒都没挂上什么意思 《爱情公寓》一部里子乔说的“二垒都没挂上”是什么意思? Oracle中Blob和Clob的作用是什么? 有品位的女人穿衣很少扮嫩,看看这些日系穿搭,时尚舒适又减龄,你怎么看? Oracle中Blob和Clob的作用? 轻熟女和熟女都喜爱的穿搭,可照穿的日系通勤搭配,有多减龄? 有什么办法可以让月经快点来? oracle clob 和 blob 两个字段什么分别 什么方法可以让月经快点完 oracle中Blob和Clob类型的区别 怎么可以让月经快点完 struct在c语言中是什么意思? 怎样才能让月经快点走干净 oracle中blob,clob,nclob,Bfile主要区别是什么? . struct st {int x;float y;char z;}stu ;说明下x,y,z是什么,struct st是什么,struct是什么,stu是什么? 做什么会让大姨妈快点来 oracle 对于大文本数据用什么类型 有什么简单的方法让大姨妈快点来 c语言中,struct怎么用,什么意思?? 有什么方法能让月经快点结束 sqlserver 中什么字段类型跟oracle 中的CLOB对应 吃什么东西可以让月经来的更快一点