01 | -- long raw -> blob |
02 |
03 | create table blob_table_name |
04 | as |
05 | select |
06 | to_lob(long_raw_col) as blob_col |
07 | from long_raw_table_name |
08 | / |
09 |
10 | -- create blob2clob function |
11 |
12 | CREATE OR REPLACE FUNCTION "BLOB2CLOB" (b IN BLOB) |
13 | RETURN CLOB |
14 | IS |
15 | l_blob blob; |
16 | l_clob clob := 'x' ; |
17 | l_dest_offsset integer := 1; |
18 | l_src_offsset integer := 1; |
19 | l_lang_context integer := dbms_lob.default_lang_ctx; |
20 | l_warning integer ; |
21 | BEGIN |
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; |
35 | RETURN l_clob; |
36 | END BLOB2CLOB; |
37 | / |
38 |
39 | -- blob --> clob |
40 |
41 | create table clob_table_name |
42 | as |
43 | select |
44 | blob2clob(blob_col) as clob_col |
45 | from blob_table_name |
46 | / |