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尾部。