Page 1 of 1

ORA-01460 when inserting large amount of data in Oracle LONG

Posted: Wed 04 Jan 2012 08:45
by Seedling
UniDac Pro 4.1.3, Delphi 7, Oracle 9.2i

When executing the following SQL with a TUniQuery I would get a specific Oracle error (ORA-01460: unimplemented or unreasonable conversion requested) if the data inserted in a LONG column exceeded a certain length (which I suspect is 32k).

Code: Select all

INSERT into MAP_INDEXES
(
  CACHED_SEMIXML
)
VALUES
(
  :semixml
)
RETURNING MAP_INDEX_ID INTO :id
:semixml is declared as ftMemo, :id as ftInteger

If :semixml is filled with a string of 22k length, the query will execute just fine, but when 50k is inserted the oracle error will occur.
However, UPDATE does not share this behaviour, and will function for both 22k and 50k.

Code: Select all

UPDATE MAP_INDEXES 
SET CACHED_SEMIXML = :semixml 
WHERE MAP_INDEX_ID = :id
So I am able to work around the problem by INSERTing a null value into the CACHED_SEMIXML column, then following up with an UPDATE to fill it, but a fix would be nice.

Posted: Wed 04 Jan 2012 11:22
by bork
Hello

We cannot reproduce this issue. Please provide us SQL script for creating the MAP_INDEXES table (including all constraints, indexes and sequences) and Delphi code that inserts data of the LONG data type to this table.