03
2014
11

ORACLE类型clob

Oracle大对象类型有那么几类

    BLOB   ——内部二进制大对象。   

    CLOB  ——内部字符大对象。   

    NCLOB   ——内部定长多字节字符大对象。   

    BFILE   ——外部二进制文件。    

比较常用的应该是CLOB吧,在做存储过程开发时,varchar2超过4000(或者2000?32767?)时就不能用了,得用更大的CLOB代替。在对该串进行操作时,需要借助专门的dbms_lob包。比如read,write,getlength等。

常用操作

1.CLOB转varchar2

vn_length := DBMS_LOB.getlength (ioc_exchange_buf);
DBMS_LOB.READ (ioc_exchange_buf, vn_length, 1, vs_messreq_buf);

2.varchar2转CLOG

两种方式

a.append clob填充到clob

b.write 字符串填充到clob

先说第一种方式,CLOB填充到clob,一个比较小的字符串可以直接用赋值的方式赋给clob类型的变量。比如

vn_xml_clob              clob;
vs_xml_str               clob;  --临时变量
vs_xml_str:='<PRODUCTLIST></PRODUCTLIST>' //这样的赋值应该是vs_xml_str直接当作varchar2类型来用了,oracle自己转换的,因为如果后面那个串太长了,这样符赋是会报错的。
dbms_lob.createtemporary(vn_xml_clob, TRUE); --初始化clob对象表空间
dbms_lob.append(vn_xml_clob, vs_xml_str); ---把字符串拼接给clob对象
os_xml:=vn_xml_clob;
dbms_lob.freetemporary(vn_xml_clob); --用完了释放空间

第二种,没用用过,好像比较复杂。还有其他比较丰富的功能,附件链接在这,要用的时候点过去自己看,哈哈。

http://docs.oracle.com/cd/E11882_01/appdev.112/e25788/d_lob.htm#ARPLS66755

« 上一篇