Oracle LONG To CLOB
Version 11.2.0.2
 
General Information
Oracle has advised, since 8i, that the LONG datatype no longer be used. This demo is included for those still working with legacy system that contain the LONG RAW data type.
 
Demo 1
Demo Table With LONG RAW CREATE TABLE lr_demo(testcol LONG RAW);
Load Demo Table With LONG RAW column INSERT INTO lr_demo (testcol) VALUES (utl_raw.cast_to_raw('Demo text for testing'));
COMMIT;

SELECT * FROM lr_demo;
Demo Global Temporary Table With BLOB column CREATE GLOBAL TEMPORARY TABLE temp_data(lob BLOB)
ON COMMIT DELETE ROWS;
Parent Stored Procedure CREATE OR REPLACE PROCEDURE lr2text AUTHID CURRENT_USER IS
 destLOB  CLOB;
 srcBLOB  BLOB;
 srcSize  INTEGER := dbms_lob.lobMaxSize;
 srcOset  INTEGER := 1;
 dstOset  INTEGER := 1;
 blobCSID NUMBER  := dbms_lob.default_csid;
 langCtx  INTEGER := dbms_lob.default_lang_ctx;
 warning  INTEGER;
BEGIN
  INSERT INTO temp_data
  SELECT TO_LOB(testcol)
  FROM lr_demo;

  SELECT lob
  INTO srcBLOB
  FROM temp_data;

  dbms_lob.createTemporary(destLOB, TRUE);
  dbms_lob.converttoclob(destLOB, srcBLOB, srcSize, srcOset, dstOset, blobCSID, langCtx, warning);

  dbms_output.put_line(destLOB);
END lr2text;
/
Run The Demo set serveroutput on

exec lr2text;

SELECT COUNT(*) FROM temp_data;
COMMIT;
SELECT COUNT(*) FROM temp_data;
 
 
Morgan's Library Page Footer
This site is maintained by Dan Morgan. Last Updated: © 2012 Daniel A. Morgan All Rights Reserved