(1)关于BLOB、CLOB、LONG、LongRaw数据类型的区别
LONG: 可变长的字符串数据,最长2G,LONG具有VARCHAR2列的特性,可以存储长文本一个表中最多一个LONG列;
LONG RAW: 可变长二进制数据,最长2G;
CLOB: 用来存储单字节的字符数据;
NCLOB: 用来存储多字节的字符数据;
BLOB: 用于存储二进制数据;
BFILE: 存储在文件中的二进制数据,这个文件中的数据只能被只读访。但该文件不包含在数据库内。
CLOB,NCLOB,BLOB都是内部的LOB(Large Object)类型,最长4G,没有 LONG只能有一列的限制
(2)若保存图片、文本文件、Word文件BLOB最好,LONG RAW也不错,但Long是oracle将要废弃的类型,因此建议用LOB。
(3)类型转换
有如下两个表
create table testraw1(col1 number,col2 long raw);
create table testraw2(col1 number,col2 blob);
要把 testraw1 里面的资料写入到testraw2中,则可用如下方式
insert into testraw2
select col2 ,to_lob(col2)
from testraw1;