System Packages Oracle PLSQL

SQL>
SQL> CREATE TABLE book (
  2     id     NUMBER (10) PRIMARY KEY,
  3     isbn               CHAR(10 CHAR),
  4     description        CLOB,
  5     nls_description    NCLOB,
  6     misc               BLOB,
  7     chapter_title      VARCHAR2(30 CHAR),
  8     bfile_description  BFILE
  9  );
Table created.
SQL>
SQL>
SQL> INSERT INTO book (id,isbn,description,nls_description,misc,bfile_description)VALUES (1,'3', EMPTY_CLOB(),EMPTY_CLOB(),EMPTY_BLOB(),BFILENAME('book_LOC', 'b.pdf'));
1 row created.
SQL>
SQL> set serveroutput on
SQL>
SQL> DECLARE
  2     v_dest_blob BLOB;
  3     v_dest_clob CLOB;
  4     v_source_locator1 BFILE := BFILENAME('book_LOC', 'bfile_example.pdf');
  5     v_source_locator2 BFILE := BFILENAME('book_LOC', 'bfile_example.txt');
  6
  7  BEGIN
  8
  9     UPDATE book SET description = EMPTY_CLOB(),misc = EMPTY_BLOB();
 10
 11     SELECT description, misc INTO v_dest_clob, v_dest_blob FROM book WHERE id = 1 FOR UPDATE;
 12
 13     
 14     DBMS_LOB.OPEN(v_source_locator1, DBMS_LOB.LOB_READONLY);
 15     DBMS_LOB.OPEN(v_source_locator2, DBMS_LOB.LOB_READONLY);
 16     DBMS_LOB.OPEN(v_dest_blob, DBMS_LOB.LOB_READWRITE);
 17     DBMS_LOB.OPEN(v_dest_clob, DBMS_LOB.LOB_READWRITE);
 18
 19     DBMS_OUTPUT.PUT_LINE('Length of the BLOB file is: '||DBMS_LOB.GETLENGTH(v_source_locator1));
 20     DBMS_OUTPUT.PUT_LINE('Length of the CLOB file is: '||DBMS_LOB.GETLENGTH(v_source_locator2));
 21     DBMS_OUTPUT.PUT_LINE('Size of BLOB pre-load: '||DBMS_LOB.GETLENGTH(v_dest_blob));
 22     DBMS_OUTPUT.PUT_LINE('Size of CLOB pre-load: '||DBMS_LOB.GETLENGTH(v_dest_clob));
 23
 24
 25     
 26     DBMS_LOB.CLOSE(v_source_locator1);
 27     DBMS_LOB.CLOSE(v_source_locator2);
 28     DBMS_LOB.CLOSE(v_dest_blob);
 29     DBMS_LOB.CLOSE(v_dest_clob);
 30
 31  EXCEPTION
 32     WHEN OTHERS
 33     THEN
 34        DBMS_OUTPUT.PUT_LINE(SQLERRM);
 35
 36        DBMS_LOB.CLOSE(v_source_locator1);
 37        DBMS_LOB.CLOSE(v_source_locator2);
 38        DBMS_LOB.CLOSE(v_dest_blob);
 39        DBMS_LOB.CLOSE(v_dest_clob);
 40
 41  END;
 42  /
SQL>
SQL> PROMPT ** SELECT of the description column
SQL>
SQL> SET LONG 64000
SQL> SELECT description
  2  FROM book
  3  WHERE id = 1;
DESCRIPTION
--------------------------------------------------------------------------------
1 row selected.
SQL>
SQL>
SQL> drop table book;
Table dropped.
SQL>
SQL>