compare()方法+使用compare方法

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 
as
  src_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;

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值