oracle中long转换为可查看,Oracle 数据库中long,lob类型的区别及转换
Oracle 数据库中long,lob类型的区别及转换?字符类:LONG:可变长的字符串数据,最长2G,LONG具有V ARCHAR2列的特性,可以存储长文本,一个表中最多一个LONG列?二进制类:LONG RAW:可变长二进制数据,最长2G?大对象类:CLOB:用来存储单字节的字符数据NCLOB:用来存储多字节的字符数据BLOB:用于存储二进制数据BFILE:存储在文件中的二进制数据,这个文件中
Oracle 数据库中long,lob类型的区别及转换
?字符类:
LONG:可变长的字符串数据,最长2G,LONG具有V ARCHAR2列的特性,可以存储长文本,一个表中最多一个LONG列
?二进制类:
LONG RAW:可变长二进制数据,最长2G
?大对象类:
CLOB:用来存储单字节的字符数据
NCLOB:用来存储多字节的字符数据
BLOB:用于存储二进制数据
BFILE:存储在文件中的二进制数据,这个文件中的数据只能被只读访。但该文件不包含在数据库内。
CLOB,NCLOB,BLOB都是内部的LOB类型,最长4G,没有LONG只能有一列的限制,对于保存图片、文本文件、Word文件,用BLOB最好,LONG RAW也不错,但Long是oracle将要废弃的类型,因此建议用LOB。
对于包含long数据类型的表t1,不能用“create table t2 as select * from t1;”的方式予以复制,会报“非法使用long类型”的错误:
SQL>create table t1(myid number, mylong long);
SQL(c3prd)>create table t2 as select * from t1;
create table t2 as select * from t1
*
ERROR at line 1:
ORA-00997: illegal use of LONG datatype
解决的方法有:
1)将long类型先转换成clob类型,再用上述方法复制
SQL(c3prd)>create table t2 as select myid,to_lob(mylong) mylob from t1;
Table created.
SQL(c3prd)>desc t2
Name Null? Type
----------------------------------------------------- -------- ------------------------------------
MYID NUMBER
MYLOB CLOB
SQL(c3prd)>create table t3 as select * from t2;
Table created.
SQL(c3prd)>desc t3
Name Null? Type
----------------------------------------------------- -------- ------------------------------------
MYID NUMBER
MYLOB CLOB
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)