0

我有一些调用远程过程以发送 XMLType 的 PLSQL 代码。不过,它所做的是将 XMLType 分成多个 varchar2(4000) 参数,这些参数是该过程接受的。远程过程通过 DBLink 调用。

为什么必须拆分 XMLType?此限制是否适用于最近的数据库版本 (10g)?

4

3 回答 3

2

因为 sys.xmltype 是用户定义的类型。

您可能会收到 PLS-00453 - 对象表或用户定义的远程操作不允许。

它可能适用于所有数据库版本(包括 10g 和 11g)。

于 2009-04-16T09:43:02.317 回答
1

在大多数情况下,Oracle 不支持处理通过数据库链接发送用户定义的类型或 LOB。XMLType 可以存储为 LOB 或 UDT,并且可能以相同的方式在内存中处理,因此它不起作用是可以理解的。

这个问题讨论了一般问题,并有一些可能的解决方法。

于 2009-04-16T14:23:41.450 回答
1

这是 Oracle 长期存在的(也是愚蠢的)问题。

超过一定大小的 LOBS 不会成功传输,您必须将大数据分块成更小的块,然后再重新组合它们。

我不敢相信 Oracle 可以不修复这个问题,我从 Oracle 8 开始就已经意识到这个问题,但最近的版本可能已经修复了这个错误。

于 2009-04-17T01:30:03.943 回答