I am trying to insert a XML request data into a table where the size of the XML message is more than 4KB and I am receiving the error: 'ORA-01461: can bind a LONG value only for insert into a LONG column'. I am receiving the XML request data as part of a transaction as a string data and due to the server used (webMethods Integration server 9.0) I have a limitation of converting the data into another format. I have tried the following methods:
Схема таблицы приведена ниже:
desc testtable
Name Null Type
------- -------- ---------
XMLDATA NOT NULL XMLTYPE()
Вставка в таблицу также должна происходить в течение короткого времени, поскольку операция выполняется для каждого сообщения запроса, поступающего на сервер. Пожалуйста помоги.
insert
как (ужасный) тип данныхlong
. Либо (а) попытаться заставить его связать значение как BLOB/CLOB и использовать конструкторxmltype(:yourBindVariable)
, либо (б) использовать временную таблицу со столбцомlong
, затемinsert ... select
из временной таблицы в вашу целевую таблицу, или (в) использовать анонимный блок PL/SQL (вместо чистогоinsert
) для преобразования на стороне сервераlong
вxmltype
. Не могу предположить, какой из них сработает, но хотя бы с чего начать. - person peter.hrasko.sk   schedule 29.09.2014xmltype(:yourBindVariable)
, это не сработало. Я попробую ваши предложения (b) и (c), но, поскольку база данных не находится под моим контролем, я не смогу продолжить это. Я надеялся решить проблему в самом коде приложения. - person Rohit Jose   schedule 02.10.2014