[ORACLE] LONG RAW -> BLOB -> CLOB

|
01-- long raw -> blob
02 
03create table blob_table_name
04as
05select
06         to_lob(long_raw_col) as blob_col
07  from long_raw_table_name
08/
09 
10-- create blob2clob function
11 
12CREATE OR REPLACE FUNCTION "BLOB2CLOB" (b IN BLOB)
13RETURN CLOB
14IS
15l_blob blob;
16l_clob clob := 'x';
17l_dest_offsset integer := 1;
18l_src_offsset integer := 1;
19l_lang_context integer := dbms_lob.default_lang_ctx;
20l_warning integer;
21BEGIN
22  l_blob := b;
23  IF dbms_lob.getlength(b) != 0 THEN
24  DBMS_LOB.CONVERTTOCLOB
25  ( dest_lob => l_clob
26  , src_blob => l_blob
27  , amount => dbms_lob.lobmaxsize
28  , dest_offset => l_dest_offsset
29  , src_offset => l_src_offsset
30  , blob_csid => dbms_lob.default_csid
31  , lang_context => l_lang_context
32  , warning => l_warning
33  );
34  END IF;
35RETURN l_clob;
36END BLOB2CLOB;
37/
38 
39-- blob --> clob
40 
41create table clob_table_name
42as
43select
44          blob2clob(blob_col) as clob_col
45  from blob_table_name
46/
And