Hi everyone,
I'm trying to insert into a table which has a column of type LONG that is used to contain large texts, by executing a stored procedure. However i'm only able to execute it for the first few times only. Subsequent times when i hit this error message - "Ora-01460 Unreasonable or Unimplemented conversion requested", i would have to exit my .NET application and run it again.
I have tried some solution recommended by installing ODP.NET for such large data types, but to no avail. Have i missed out anything? Could someone shed some light?
Here's what i have written in my .NET application:
And the stored procedure goes like this:Code:Public Shared Sub InsertQueue(ByVal identity As String, _ ByVal processFlag As Integer, _ Optional ByVal strInputXML As String = Nothing _ ) Dim conn As OleDbConnection Dim strSp As String = clsConnection.DBOwner & ".USP_INS_KIF_QUEUE" Dim prmParam(3) As OleDbParameter prmParam(0) = New OleDbParameter("@returnvalue", OleDbType.Integer) prmParam(0).Direction = ParameterDirection.Output prmParam(1) = New OleDbParameter("@inputxml", OleDbType.LongVarChar, 0, ParameterDirection.Input, True, Nothing, Nothing, Nothing, DataRowVersion.Current, strInputXML) prmParam(2) = New OleDbParameter("@identity", identity) prmParam(3) = New OleDbParameter("@processflag", processFlag) Try conn = New OleDbConnection(clsConnection.ConnectionString) conn.Open() OleDbHelper.ExecuteNonQuery(clsConnection.ConnectionString, CommandType.StoredProcedure, strSp, prmParam) clsCommon.ParseException(prmParam(0).Value) Catch ex As Exception Throw ex Finally conn.Close() conn.Dispose() End Try End Sub
Any help would be very much appreciated.Code:CREATE OR REPLACE PROCEDURE EKRISMGR.USP_INS_KIF_QUEUE -- Stored Procedure for table KIF_QUEUE ( v_returnvalue OUT NUMBER, v_inputxml IN LONG, v_identity IN varchar2, v_processflag IN NUMBER ) AS recCount INTEGER; BEGIN INSERT INTO EKRISMGR.KIF_QUEUE (INPUT_XML, IDENTITY, PROCESSFLAG, STARTDATETIME) VALUES (v_inputxml, v_identity, v_processflag, SYSDATE); recCount := SQL%ROWCOUNT; IF (recCount > 0) THEN v_returnvalue := 0; ELSE v_returnvalue := 1000; END IF; RETURN; END;
[Code tags added — Mod]



Reply With Quote