compare()方法
compare(lob1,lob2,amount,offset_1,offset_2)
1用于比較2個lob存儲的數據,比較的方式是從指定偏移量開始,對指定數量的字符或者字節進行比較。
2如果比較內容相同,返回0,否則返回-1或1.
3如果參數設置有誤或不合理,返回null
4改方法的使用語法如下
語法1(BLOB/BFILE)
dbms_lob.compare(
lob_1 IN BLOB/BFILE,
lob_2 IN BLOB/BFILE,
amount IN INTEGER:=4294967295,–要比較的字節數(BLOB)
offset_1 IN INTEGER:=1,–lob_1的起始位置
offset_2 IN INTEGER:=1–lob_2的起始位置)
語法1(CLOB/nclob )
dbms_lob.compare(
lob_1 IN CLOB/nclob character set any_cs,
lob_2 INCLOB/nclob character set lob_1%charset ,
amount IN INTEGER:=4294967295,–要比較的字節數(BLOB)
offset_1 IN INTEGER:=1,–lob_1的起始位置
offset_2 IN INTEGER:=1–lob_2的起始位置)
參數解釋:
offset_1:lob_1的起始位置
offset_2:lob_2的起始位置
amount IN INTEGER:要比較的字符數(CLOB)或者字節數(BLOB)
character set any_cs:lob_1 中的數據可以是任何字符集
character set dest_lob%charset:表示lob_1的字符集.
舉例
測試數據
create table clob_table(
id number,
clob_column clob not null
);--添加數據
--to_clob 將字符數據轉換為clob類型
insert into clob_table values(1,to_clob('this is clob data'));
insert into clob_table values(2,to_clob('clob is here'));
select * from clob_table;
使用compare方法
create or replace procedure compare_clob
assrc_lob clob; dest_lob clob; amount INTEGER:=5;offset_1 INTEGER:=1;offset_2 INTEGER:=1;return_value INTEGER;begin select clob_column into dest_lob from clob_table where id=1 for update;select clob_column into src_lob from clob_table where id=2 for update;return_value:=dbms_lob.compare(dest_lob,src_lob,amount,offset_1,offset_2); dbms_output.put_line('比較結果是'||return_value);
end compare_clob;
/
exec compare_clob;