Solution for converting CLOBS datatype to VARCHAR datatypes, all the documents I refer to talk about converting BLOBS to VARCHAR and when I try and apply the examples to CLOBS, get errors
and we said…
dbms_lob.substr( clob_column, for_how_many_bytes, from_which_byte );
select dbms_lob.substr( x, 4000, 1 ) from T;
will get me the first 4000 bytes of the clob.
Note that when using SQL as I did, the max length is 4000. You can get 32k using plsql:
declare my_var long;
begin for x in ( select X from t )
loop my_var := dbms_lob.substr( x.X, 32000, 1 );
Oracle translate tips
Oracle/PLSQL: Translate Function
In Oracle/PLSQL, the translate function replaces a sequence of characters in a string with another set of characters. However, it replaces a single character at a time. For example, it will replace the 1st character in the string_to_replace with the 1st character in the replacement_string. Then it will replace the 2nd character in the string_to_replace with the 2nd character in the replacement_string, and so on.
The syntax for the translate function is:
translate( string1, string_to_replace, replacement_string )
string1 is the string to replace a sequence of characters with another set of characters.
string_to_replace is the string that will be searched for in string1.
replacement_string – All characters in the string_to_replace will be replaced with the corresponding character in the replacement_string.
- Oracle 8i, Oracle 9i, Oracle 10g, Oracle 11g
translate(‘1tech23’, ‘123’, ‘456’); would return ‘4tech56’ translate(‘222tech’, ‘2ec’, ‘3it’); would return ‘333tith’