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

Discussion of open issues, suggestions and bugs regarding UniDAC (Universal Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
Seedling
Posts: 2
Joined: Wed 16 Nov 2011 11:56

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

Post by Seedling » Wed 04 Jan 2012 08:45

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.

bork
Devart Team
Posts: 649
Joined: Fri 12 Mar 2010 07:55

Post by bork » Wed 04 Jan 2012 11:22

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.

Post Reply