If you inserted data greater than 4k in size, then it got stored out-of-line. Are you saying that DBMS_LOB.GETLENGTH(<clob_column>) is showing 6K?
Have you tried to select * from <table_name>;
Anyway, if you want to read the CLOB from PL/SQL, the following should work:
Code:CREATE OR REPLACE PROCEDURE readLOB_proc IS Lob_loc BLOB; Buffer RAW(32767); Amount BINARY_INTEGER := 32767; Position INTEGER := 1000; Chunksize INTEGER; BEGIN SELECT <clob_column> INTO Lob_loc FROM <table_name>; Chunksize := DBMS_LOB.GETCHUNKSIZE(Lob_loc); IF (Chunksize < 32767) THEN Amount := (32767 / Chunksize) * Chunksize; END IF; DBMS_LOB.READ (Lob_loc, Amount, Position, Buffer); END;




Reply With Quote