Home » SQL & PL/SQL » SQL & PL/SQL » How to compare 2 values of Long Datatype
How to compare 2 values of Long Datatype [message #38922] Tue, 28 May 2002 03:27 Go to next message
Tuong
Messages: 2
Registered: May 2002
Junior Member
Hi All,
Does Anyone know how to compare 2 values of Long Datatype in PL/SQL?
Thanks a lot!
Tuong
Re: How to compare 2 values of Long Datatype [message #38926 is a reply to message #38922] Tue, 28 May 2002 06:03 Go to previous messageGo to next message
Mahesh Rajendran
Messages: 10707
Registered: March 2002
Location: oracleDocoVille
Senior Member
Account Moderator
*******************************************************
hi!.
Make use of dbms_lob.compare.
The COMPARE() function allows comparison between two entire LOBs or parts of the LOBs. COMPARE() returns a zero if the data exactly matches over the specified range. Otherwise, it returns a non-zero value.

*******************************************************

SQL> CREATE TABLE lob_store OF lob_type;

Table created.

/* load some data */
SQL> ed
Wrote file afiedt.buf

1 DECLARE
2 loop_count INTEGER;
3 BEGIN
4 loop_count := 1;
5 WHILE loop_count <= 10 LOOP
6 INSERT INTO lob_store (lob_id) VALUES (loop_count);
7 loop_count := loop_count + 1;
8 END LOOP;
9 UPDATE lob_store SET video_clip=utl_raw.cast_to_raw('0123456789'),
10 document = 'abcdefgh' where lob_id=2;
11 UPDATE lob_store SET video_clip=utl_raw.cast_to_raw('7777777'),
12 document = 'ijklmn' where lob_id=3;
13 UPDATE lob_store SET video_clip=empty_blob(),
14 document = empty_clob() where lob_id=4;
15* END;
16 /

PL/SQL procedure successfully completed.

SQL> CREATE OR REPLACE PROCEDURE tst_compare IS
2 dblob BLOB;
3 sblob BLOB;
4 dclob CLOB;
5 sclob CLOB;
6 amt NUMBER;
7 dpos NUMBER;
8 spos NUMBER;
9 ret INTEGER;
10 BEGIN
11 dbms_output.put_line('--------------- COMPARE Begin ---------------');
12 dpos := 3; spos := 1;
13 amt := 5;
14
15 /* test COMPARE for BLOBs */
16 SELECT video_clip INTO dblob FROM lob_store WHERE lob_id = 2;
17 SELECT video_clip INTO sblob FROM lob_store WHERE lob_id = 4;
18 ret := -1;
19 ret := dbms_lob.compare(dblob, sblob, amt, dpos, spos);
20 dbms_output.put_line('Return value for BLOB: ' || ret);
21
22 /* testing the validity of COMPARE for CLOBs */
23 SELECT document INTO dclob FROM lob_store WHERE lob_id = 2;
24 SELECT document INTO sclob FROM lob_store WHERE lob_id = 4;
25 ret := -1;
26 ret := dbms_lob.compare(dclob, sclob, amt, dpos, spos);
27 dbms_output.put_line('Return value for CLOB: ' || ret);
28
29 dbms_output.put_line('--------------- COMPARE End ---------------');
30 dbms_output.put_line(' ');
31 END tst_compare;
32
33 /

Procedure created.

SQL> exec tst_compare;
--------------- COMPARE Begin ---------------
Return value for BLOB: 1
Return value for CLOB: 1
--------------- COMPARE End ---------------

PL/SQL procedure successfully completed.
Re: How to compare 2 values of Long Datatype [message #38930 is a reply to message #38926] Tue, 28 May 2002 20:20 Go to previous message
Tuong
Messages: 2
Registered: May 2002
Junior Member
Dear Mahesh Rajendran,
Thanks for your reply, but I need to compare to value of LONG data type, not LOB data type (CLOB or BLOB..etc)
Thanks any way!
Regards,
Tuong
Previous Topic: from where i must start ?
Next Topic: creating column heading as a literal string
Goto Forum:
  


Current Time: Wed Apr 24 18:02:42 CDT 2024