COMPARE¶
比较两个LOB大小
声明¶
DBMS_LOB.COMPARE (
lob_1 IN BLOB,
lob_2 IN BLOB,
amount IN BIGINT := DBMS_LOB.LOBMAXSIZE,
offset_1 IN BIGINT := 1,
offset_2 IN BIGINT := 1)
RETURN INTEGER;
DBMS_LOB.COMPARE (
lob_1 IN CLOB ,
lob_2 IN CLOB ,
amount IN BIGINT := DBMS_LOB.LOBMAXSIZE,
offset_1 IN BIGINT := 1,
offset_2 IN BIGINT := 1)
RETURN INTEGER;
DBMS_LOB.COMPARE (
lob_1 IN BFILE,
lob_2 IN BFILE,
amount IN INTEGER,
offset_1 IN INTEGER := 1,
offset_2 IN INTEGER := 1)
RETURN INTEGER;
结构¶
| 参数 | 说明 |
|---|---|
| lob_1 | 定位器 |
| lob_2 | 定位器 |
| amount | 字节数或字符比较 |
| offset_1 | lob_1偏移量 |
| offset_2 | lob_2偏移量 |
示例¶
drop table tLob cascade;
Create Table tLob (
no Number(4),
name VarChar2(10),
resume CLob,
photo BLob,
record BFile
);
insert into tlob values(1,'Nick','CLOB对象列',empty_blob(),bfilename('MYDIR','1.JPG'));
insert into tlob values(2,'Jack','CLOB对象列',empty_blob(),bfilename('MYDIR','2.JPG'));
insert into tlob values(3,'Mary','对象列CLOB',empty_blob(),bfilename('MYDIR','3.JPG'));
create or replace procedure test_compare() as
Declare
varC1 clob;
varC2 clob;
varC3 clob;
ln number(4);
Begin
select resume into varC1 from tlob where no = 1;
select resume into varC2 from tlob where no = 2;
select resume into varC3 from tlob where no = 3;
ln := DBMS_LOB.Compare(varC1,varC1);
DBMS_output.put_line('比较的结果为: '||ln);
ln := DBMS_LOB.Compare(varC2,varC3);
DBMS_output.put_line('比较的结果为: '||ln);
End;
/
exec test_compare();
比较的结果为: 0
比较的结果为: -1
/
相同返回结果为0 不同返回结果为 -1 如果offset不是一个有效的偏移量返回结果为null