BLOB/CLOB/LONG/LongRaw数据类型有什么区别呢?

superhasty 2003-02-20 05:51:07
比如:我要保存图片、文本文件、Word文件各自最好用哪种数据类型的呀?

我在读写Oracle8i时,用第一份代码能正确的读写LongRaw字段(保存图片能写进去和读出来,没有测试过其他的文件格式),但该代码不能读写Long型、BLOB或者CLOB型的字段。

而用我的第二份代码可以读写Blob字段,但只是保存纯文本文件没有问题(保存图片和Word文件不能正确的读出来)。

为什么会这样?
...全文
277 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
NavyHaijun 2010-06-08
  • 打赏
  • 举报
回复
haha!菜尿
doall4u 2003-08-17
  • 打赏
  • 举报
回复
up
maohaisheng 2003-04-18
  • 打赏
  • 举报
回复
在一本电子书上看到的,觉得可能有点用,再贴出来了


CHAR固定长度字符域,最大长度可达2000个字节
NCHAR多字节字符集的固定长度字符域,长度随字符集而定,最多为2000个字符或2000个字节
VARCHAR2可变长度字符域,最大长度可达4000个字符
NVARCHAR2多字节字符集的可变长度字符域,长度随字符集而定,最多为4000个字符或4000个字节
DATE用于存储全部日期的固定长度(7个字节)字符域,时间作为日期的一部分存储其中。除非
通过设置init.ora文件的NLS_DATE_FORMAT参数来取代日期格式,否则查询时,日期以
DD-MON-YY格式表示,如13-APR-99表示1999.4.13
NUMBER可变长度数值列,允许值为0、正数和负数。NUMBER值通常以4个字节或更少的字节存

LONG可变长度字符域,最大长度可到2GB
RAW表示二进制数据的可变长度字符域,最长为2000个字节
LONGRAW表示二进制数据的可变长度字符域,最长为2GB
MLSLABEL只用于TrustedOracle,这个数据类型每行使用2至5个字节
BLOB二进制大对象,最大长度为4GB
CLOB字符大对象,最大长度为4GB
NCLOB多字节字符集的CLOB数据类型,最大长度为4GB
BFILE外部二进制文件,大小由操作系统决定
ROWID表示RowID的二进制数据,Oracle8RowID的数值为10个字节,在Oracle7中使用的限定
RowID格式为6个字节
UROWID用于数据寻址的二进制数据,最大长度为4000个字节

cubboy 2003-04-18
  • 打赏
  • 举报
回复
我是个Oracle的菜尿,我想问一下,LONG REW的读取和写入是怎么做的?
最好是VC++的例子,谢谢了
superhasty 2003-02-21
  • 打赏
  • 举报
回复
多谢多谢!
penitent 2003-02-20
  • 打赏
  • 举报
回复
建议用lob
long是oracle将要废弃的类型
maohaisheng 2003-02-20
  • 打赏
  • 举报
回复
关于你的后两个问题,可能是因为BLOB/CLOB/LONG/LongRaw是三类变量
这个我就不太清楚了
maohaisheng 2003-02-20
  • 打赏
  • 举报
回复
字符类
LONG:可变长的字符串数据,最长2G,LONG具有VARCHAR2列的特性,可以存储长文本一个表中最多一个LONG列
二进制类:
LONG RAW:
可变长二进制数据,最长2G
大对象类:
CLOB:用来存储单字节的字符数据
NCLOB:用来存储多字节的字符数据
BLOB:用于存储二进制数据
BFILE:存储在文件中的二进制数据,这个文件中的数据只能被只读访。但该文件不包含在数据库内。

CLOB,NCLOB,BLOB都是内部的LOB类型,最长4G,没有 LONG只能有一列的限制


我要保存图片、文本文件、Word文件各自最好用哪种数据类型的呀?
BLOB最好,LONG RAW也不错。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧