Heim >Datenbank >MySQL-Tutorial >使用dbms_lob.compare比对lob字段

使用dbms_lob.compare比对lob字段

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 16:01:221945Durchsuche

以前写了一个通过dbms_lob.getlength来比对lob长度的脚本,后来通过实践发现有点问题,发现很多长度一样的lob但是内容可能不一样,oracle目前只有使用dbms_lob.compare来比对lob字段,但是这个有个局限就是不能使用dblink来比对两个库的lob,下面是一个举例

以前写了一个通过dbms_lob.getlength来比对lob长度的脚本,后来通过实践发现有点问题,发现很多长度一样的lob但是内容可能不一样,oracle目前只有使用dbms_lob.compare来比对lob字段,但是这个有个局限就是不能使用dblink来比对两个库的lob,下面是一个举例脚本,通过两张表tb1和tb2通过主键id来进行lob的比对

如果发现lob不一致,则打印出id号

. /home/oracle/.bash_profile

sqlplus -silent test/test <<EOF
set serveroutput on
set pagesize 0 feedback off verify off heading off echo off

Declare
CURSOR c1 is select id from test.tb1;
varC1 blob;
varC2 blob;
ln number(4);
Begin
for v1 in c1 loop
select data into varC1 from test.tb1 where id = v1.id;
select data into varC2 from test.tb2 where id = v1.id; 
ln := DBMS_LOB.Compare(varC1,varC2);
if ln <>0 then
DBMS_output.put_line(v1.id);
end if;
end loop;
End;
/
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn