ORA-01460 when inserting large amount of data in Oracle LONG
Posted: 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).
: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.
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.
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 :idIf :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