BFILE Comparisons : bfile « Large Objects « Oracle PL / SQL






BFILE Comparisons

  
SQL>
SQL> CREATE OR REPLACE DIRECTORY books_Dir AS 'C:\BOOKS';

Directory created.

SQL>
SQL> DECLARE
  2       v_FILE1 BFILE;
  3       v_FILE2 BFILE;
  4       v_FILE3 BFILE;
  5       v_GETLENGTH1 INTEGER;
  6       v_GETLENGTH2 INTEGER;
  7       v_GETLENGTH3 INTEGER;
  8       v_COMPARELENGTH INTEGER;
  9       v_COMPARERESULT INTEGER;
 10
 11  BEGIN
 12       v_FILE1 := BFILENAME('BOOKS_DIR','1.GIF');
 13       v_FILE2 := BFILENAME('BOOKS_DIR','2.GIF');
 14       v_FILE3 := BFILENAME('BOOKS_DIR','5.GIF');
 15
 16       DBMS_LOB.FILEOPEN(v_FILE1);
 17       DBMS_LOB.FILEOPEN(v_FILE2);
 18       DBMS_LOB.FILEOPEN(v_FILE3);
 19
 20       v_GETLENGTH1 := DBMS_LOB.GETLENGTH(v_FILE1);
 21       v_GETLENGTH2 := DBMS_LOB.GETLENGTH(v_FILE2);
 22       v_GETLENGTH3 := DBMS_LOB.GETLENGTH(v_FILE3);
 23
 24       IF v_GETLENGTH1 < v_GETLENGTH2 THEN
 25            v_COMPARELENGTH := v_GETLENGTH1;
 26       ELSE
 27            v_COMPARELENGTH := v_GETLENGTH2;
 28       END IF;
 29
 30       v_COMPARERESULT := DBMS_LOB.COMPARE(v_FILE1,v_FILE2,v_COMPARELENGTH,1,1);
 31
 32       IF v_COMPARERESULT = 0 THEN
 33            DBMS_OUTPUT.PUT_LINE('Both Files Are Identical');
 34       ELSE
 35            DBMS_OUTPUT.PUT_LINE('Both Files Are Different');
 36       END IF;
 37
 38       IF v_GETLENGTH1 < v_GETLENGTH3 THEN
 39            v_COMPARELENGTH := v_GETLENGTH1;
 40       ELSE
 41            v_COMPARELENGTH := v_GETLENGTH3;
 42       END IF;
 43
 44       v_COMPARERESULT := DBMS_LOB.COMPARE(v_FILE1,v_FILE3,v_COMPARELENGTH,1,1);
 45
 46       IF v_COMPARERESULT = 0 THEN
 47            DBMS_OUTPUT.PUT_LINE('Both Files Are Identical');
 48       ELSE
 49            DBMS_OUTPUT.PUT_LINE('Both Files Are Different');
 50       END IF;
 51
 52       DBMS_LOB.FILECLOSEALL;
 53  END;
 54  /
DECLARE
*
ERROR at line 1:
ORA-22288: file or LOB operation FILEOPEN failed
The system cannot find the path specified.
ORA-06512: at "SYS.DBMS_LOB", line 523
ORA-06512: at line 16


SQL> --

   
  








Related examples in the same category

1.Create the BFILE directory
2.Two locators pointing to the same file
3.Insert value to bfile column
4.BFILE File Operations
5.Call BFILENAME to get pointer to a BFILE
6.BFILENAME function