Почему нельзя отправить XMLType Oracle через DBLink? - PullRequest
0 голосов
/ 15 апреля 2009

У меня есть код PLSQL, который вызывает удаленную процедуру для отправки XMLType. Однако он делит XMLType на несколько параметров varchar2 (4000), которые принимает процедура. Удаленная процедура вызывается через DBLink.

Почему XMLType должен быть разделен? Применимо ли это ограничение к последним версиям базы данных (10 г)?

Ответы [ 3 ]

2 голосов
/ 16 апреля 2009

Поскольку sys.xmltype - это пользовательский тип.

Возможно, вы получаете PLS-00453 - удаленные операции запрещены для таблиц объектов или определены пользователем.

Это ограничение возможно для всех версий баз данных (включая 10g и 11g).

1 голос
/ 17 апреля 2009

Это давняя (и глупая) проблема от Oracle.

Большие объекты, размер которых превышает определенный, не передаются успешно, вы должны разбить большие данные на более мелкие куски и позже заново их скомпоновать.

Я не могу поверить, что Oracle может обойтись без исправления, я знал о проблеме со времен Oracle 8, но в более поздних версиях ошибка могла быть исправлена.

1 голос
/ 16 апреля 2009

Oracle в большинстве случаев не поддерживает обработку отправки пользовательских типов или больших объектов по ссылкам базы данных. XMLType может храниться как LOB или UDT и, вероятно, обрабатываться в памяти таким же образом, поэтому понятно, что он не будет работать.

Этот вопрос обсуждает общую проблему и имеет некоторые возможные обходные пути.

...