今天遇到一张表中内容为LONG类型的数据,在PL/SQL DEVELOPER中是可以直接查看到该数据类型为LONG的字段内容的。
但在PLSQL中查看的内容则与之不同,显示为数值型的
SQL> SET LONG 999999999 SQL> SELECT HIGH_VALUE FROM USER_TAB_PARTITIONS; HIGH_VALUE --------------- 1462840498, 4966 1462840498, 4966 1462840498, 4966 1462840498, 4966
我想进行类型间的转化,比如把LONG字段类型转化为字符型。怎么办?
网上也提供了办法就是先把LONG类型转化为CLOB,然后再通过数据库的DBMS_LOB进行转化
首先通过TO_LOB函数将LONG类型转化为CLOB类型,官网中解释该函数的用法:
http://docs.oracle.com/cd/E11882_01/server.112/e41084/functions205.htm#i79464
提到要进行转化,必须把该字段的内容重新插入到一张新表中数据类型为CLOB的字段中。
CREATE TABLE TEMP_UP(DATA_L CLOB);
INSERT INTO TEMP_UP (SELECT TO_LOB(HIGH_VALUE) FROM USER_TAB_PARTITIONS WHERE ROWNUM<2 );
--获取CLOB数据类型字段的长度
SELECT DBMS_LOB.GETLENGTH(DATA_L) FROM TEMP_UP;
--截取字段内容中从第11个字符开始向后19个字节长度的内容
DBMS_LOB.SUBSTR(DATA_L,11,19)
--截取CLOB数据类型字段的所有内容
DBMS_LOB.SUBSTR(DATA_L,32767)
具体用法可以参照:http://blog.csdn.net/liou825/article/details/7971865