Deceptive Error

Deceptive Error

Postby RabbitHunter » Thu 24 Apr 2014 15:17


I have an application that synchronizes data from a Pervasive database to an Oracle database. When running the application and transferring data for a specific vendor, I would get the following error message:

ORA-01461: can bind a LONG value only for insert into a LONG column
at Devart.Data.Oracle.bp.d()
at Devart.Data.Oracle.b0.f()
at Devart.Data.Oracle.b0.c()
at Devart.Data.Oracle.i.a(Int32 A_0, bx A_1)
at Devart.Data.Oracle.OracleCommand.InternalExecute(CommandBehavior behavior, IDisposable disposable, Int32 startRecord, Int32 maxRecords, Boolean nonQuery)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
at Devart.Data.Oracle.OracleCommand.ExecuteNonQuery()

The problem was actually caused by adding a value to a character parameter that was longer than the length specified (in this case 36). After trimming the input data to the proper length, the error was fixed.

However; the error message as listed above caused me to spend time looking at my NUMERIC fields and the corresponding parameters for the insert.
Posts: 1
Joined: Thu 24 Apr 2014 15:10

Re: Deceptive Error

Postby Pinturiccio » Tue 29 Apr 2014 14:00

The information you have provided is not enough for reproducing the issue. Please describe how your program works in more details. If possible, please create and send us a small test project with the corresponding DDL/DML scripts for reproducing the issue.

RabbitHunter wrote:the length specified (in this case 36)

Please tell us whether 36 is:
1. The column length. Tell us the type and size of the column in this case. For example, VARCHAR2(36 BYTE), VARCHAR2(36 CHAR) or NCHAR(36) or something different.
2. OracleParameter.Size.
Devart Team
Posts: 1866
Joined: Wed 02 Nov 2011 09:44

Return to dotConnect for Oracle