【轉】DBMS_LOB包的使用

DBMS_LOB包的使用數據庫

一、  dbms_lob.append( dest_lob  IN  OUT  NOCOPY  BLOB,緩存

            src_lob  IN  BLOB)app

   dbms_lob.append( dest_lob  IN  OUT  NOCOPY  CLOB  CHARACTER  SET  ANY_CS,函數

                    src_lob   IN  CLOB  CHRACTER  SET  dest_lob%CHARSET);get

       將源LOB變量的內容添加到目標LOB變量的尾部。it

       示例:dest_lob  clob;變量

               src_lob  clob;file

               dbms_lob.append(dest_lob,src_lob);方法

二、  dbms_lob.close(lob_loc  IN  OUT  NOCOPY  BLOB/CLOB/BFILE)im

   關閉已經打開的LOB。

三、  dbms_lob.compare( lob_1  IN  BLOB/CLOB/BFILE,

                                    lob_2  IN  BLOB/CLOB/BFILE,

                                    amount  IN  INTEGER:=4294967295,--要比較的字符數(CLOB),字節數(BLOB)

                                    offset_1  IN  INTEGER:=1,--lob_1的起始位置

                                    offset_2  IN  INTEGER:=1--lob_2 的起始位置)

      比較兩個LOB的內容。

四、 dbms_lob.copy( dest_lob  IN  OUT  NOCOPY  BLOB/CLOB/NCLOB,

                             src_lob  IN  BLOB/CLOB/NCOB,

                             amount  IN  INTEGER,

                             dest_offset  IN  INTEGER:=1,

                             src_offset  IN  INTEGER:=1)

     從src_lob中,以src_offset爲起始位置,截取amount個字符/字節,放到dest_lob的dest_offset位置。

五、 dbms_lob.createtemporary( lob_loc  IN  OUT  NOCOPY  BLOB/DLOB/NCLOB,

                                              cache  IN  BOOLEAN,

                                              dur  IN  PLS_INTEGER:=10)

       在用戶的臨時表空間中,創建臨時LOB。

       lob_loc:指定LOB定位符。

       Cache:是否將LOB讀取到緩衝區。

       Dur:指定什麼時候清除臨時LOB(10:會話結束時。12:調用結束時)。

六、 dbms_lob.erase( lob_loc  IN  OUT  NOCOPY  BLOB/CLOB/NCLOB,

                              amount  IN  OUT  NOCOPY  INTEGER,--字符/字節數

                              offset  IN  INTEGER:=1—起始位置)

      刪除LOB變量的內容。

七、 dbms_lob.fileclose(file_loc  IN  OUT  NOCOPY  BFILE)

      關閉打開的BFILE定位符所指向的OS文件

八、 dbms_lob.filecloseall關閉當前會話已經打開的全部BFILE文件。

九、 dbms_lob.fileexists(file_loc  IN  BFILE) RETURN  INTEGER

      肯定file_loc對應的OS文件是否存在,1:存在。0:不存在。

十、dbms_lob.filegetname( file_loc  IN  BFILE,

                                       dir_alias  OUT  varchar2,

                                       filename  OUT  varchar2)

      獲取BFILE定位符所對應的目錄別名和文件名。

十一、dbms_lob.fileisopen(file_loc  IN  BFILE)  RETURN  INTEGER

       肯定BFILE對應的OS文件是否打開。

十二、dbms_lob.freetemporary(lob_lob  IN  OUT  NOCOPY  BLOB/CLOB/NCLOB)

       釋放在默認臨時表空間中的臨時LOB。

1三、dbms_lob.fileopen(file_loc  IN  OUT  NOCOPY  BFILE,

                                  Open_mode  IN  BINARY_INTEGER:file_readonly)

       打開文件。

1四、dbms_lob.getchunksize(lob_loc  IN  BLOB/CLOB/NCLOB)  RETURN  INTEGER

       當創建包含CLOB/BLOB列的表時,經過指定CHUNK參數能夠指定操縱LOB須要分配的字節數(數據庫尺寸的整數倍)默認爲數據塊的尺寸。

1五、dbms_lob.getlength(lob_loc  IN  BLOB/CLOB/BFILE/NCLOB) RETURN  INTEGER

       獲取長度。

1六、dbms_lob.instr( Lob_loc  IN  BLOB/CLOB/NCLOB/BFILE,

                              Pattern  IN  RAW/VARCHAR2,

                              Offset  IN  INTERGER:=1,

                              Nth   IN  INTEGER:=1)  RETURN  INTEGER;

       返回特定樣式數據從LOB某偏移位置開始出現N次的具體位置。

1七、dbms_lob.idopen(lob_loc  IN  BLOB/CLOB/BFILE)  RETURN  INT

       肯定LOB是否打開,打開:1,未打開:0。

1八、dbms_lob.istemporary(lob_loc  IN  BLOB/CLOB/NCLOB)  RETURN  INTEGER

       肯定定位符是否爲臨時LOB。

1九、dbms_lob.loadfromfile( dest_lob  IN  OUT  NOCOPY  BLOB/CLOB,

                                        src_file  IN  FILE,

                                        amount  IN  INTEGER,

                                        dest_offset  IN  INTEGER:=1,

                                        src_offset  IN  INTEGER:=1)

        將BFILE的部分或所有內容複製到目標LOB變量。

20、dbms_lob.loadblobfromfile( dest_lob  IN  OUT  NOCOPY  BLOB,

                                              src_bfile  IN  BFILE,

                                              amount  IN  INTEGER,

                                              dest_offset  IN  OUT  INTEGER,

                                              src_offset  IN  OUT  INTEGER)

       將BFILE數據裝載到BLOB中,而且在裝載後取得最新的偏移位置。

2一、dbms_lob.open( lob_loc  IN  OUT  NOCOPY  BLOB/CLOB/BFILE,

                              open_mode  IN  BINARY_INTEGER)

       打開LOB,open_mode(只讀:dbms_lob.lob_readonly,讀寫:dbms_lob.lob_readwrite).

2二、dbms_lob.read( lob_loc  IN  BLOB/CLOB/BFILE,

                             amount  IN  OUT  NOCOPY  BINARY_INTEGER),--IN:要讀取的字符數,       

                                        OUT:實際讀取的字符數。

                             Offset  IN  INTEGER,

                             Buffer  OUT  RAW/VARCHAR2—存儲數據的變量)

         將LOB數據讀取到緩存區中(變量中)。

2三、dbms_lob.substr( Lob_loc  IN  BLOB/CLOB/BFILE,

                                 Amount  IN  INTEGER:=32762,

                                 Offset  IN  INTEGER:=1) RETURN  RAW/VARCHAR2

        與字符處理函數SUBSTR()使用方法同樣。

2四、dbms_lob.trim( Lob_loc  IN  OUT  NOCOPY  BLOB/CLOB/NCLOB,

                             Newlen  IN  INTEGER)

        截斷LOB到指定長度。

2五、dbms_lob.write( Lob_loc  IN  OUT  NOCOPY  BLOB/CLOB,

                              Amount  IN  BINARY_INTEGER,

                              Offset  IN  INTEGER,

                              Buffer  IN  RAW/VARCHAR2)

        將緩衝區數據寫入到LOB中的特定位置。

2六、dbms_lob.writeappend( Lob_loc  IN  OUT  NOCOPY  BLOB/CLOB/NCLOB,

                                         Amount  IN  BINARY_INTEGER,

                                         Buffer  IN  RAW/VARCHAR2)

       將緩衝區數據寫到LOB尾部。

相關文章
相關標籤/搜索