oracle中long转换为可查看,Oracle 数据库中long,lob类型的区别及转换

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值