Thursday, June 18, 2009

Unsupported Oracle data type USERDEFINED encountered.

Make sure that you use Oracle.DataAccess.Client instead of System.Data.OracleClient.

using Oracle.DataAccess.Client;

Oracle Host Credentials: Failed to verify credentials

To resolve this error, you need to set OS user name here

Control Panel-> Admin. Tools -> Local Security Policy -> Local Policies -> User Rights Assignment

Locate "Log on as batch job" Policy, right click and select properties

Add the OS User to "Local Security Setting" tab.

Tuesday, May 19, 2009

Oracle: How to convert BLOB to CLOB

Thanks to Oracle forums.

CREATE OR REPLACE FUNCTION blob_to_clob (blob_in IN BLOB)
RETURN CLOB
AS
v_clob CLOB;
v_varchar VARCHAR2(32767);
v_start PLS_INTEGER := 1;
v_buffer PLS_INTEGER := 32767;
BEGIN
DBMS_LOB.CREATETEMPORARY(v_clob, TRUE);

FOR i IN 1..CEIL(DBMS_LOB.GETLENGTH(blob_in) / v_buffer)
LOOP

v_varchar := UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(blob_in, v_buffer, v_start));

DBMS_LOB.WRITEAPPEND(v_clob, LENGTH(v_varchar), v_varchar);

v_start := v_start + v_buffer;
END LOOP;

RETURN v_clob;

END blob_to_clob;
/

Example: Select blob_to_clob(blob_column) from table_name;