Updating oracle stored procedure with > 32 KB fails with ‘the operation failed 0x80040e14’

Symptom

Updating an Oracle stored procedure using the Call Stored Procedure (OLEDB) tool returns the following error code:

the operation failed 0x80040e14

Cause

The underlying error is ‘ORA-01460: unimplemented or unreasonable conversion requested’. This is caused by binding more than 32KB data to a stored procedure parameter when using the Oracle OLEDB Provider.

Resolution

Add the following parameter to the OLEDB connection string:

SPPrmsLOB=True

This can easily be done by entering the Call Stored Procedure (OLEDB) global configuration within the client and manually editing the connection string for the Oracle OLEDB Provider connection. This can be located via the following:

Manage -> Tools -> Input -> Call Stored Procedure (OLEDB) > [Oracle OLEDB Provider connection] > Properties > Connection

An example connection string is:

Provider=OraOLEDB.Oracle.1;Password=password;Persist Security Info=True;UserID=system;Data Source=xe;SPPrmsLOB=True

Capture1

The parameter informs the Oracle OLEDB driver that at least one of the stored procedure parameters is of a LOB type.