为什么不能通过DBLink发送Oracle XMLType?

时间:2009-04-15 15:37:26

标签: xml database oracle plsql dblink

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

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

3 个答案:

答案 0 :(得分:2)

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

可能您正在获得PLS-00453 - 对象表或用户定义不允许进行远程操作。

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

答案 1 :(得分:1)

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

This question讨论了一般问题并提供了一些可能的解决方法。

答案 2 :(得分:1)

这是甲骨文的长期(和愚蠢)问题。

超过一定大小的LOBS不会成功转移,您必须将大数据分成较小的块并稍后重新组合。

我无法相信Oracle可以不解决这个问题,我已经意识到自Oracle 8以来的问题,但是更新的版本可能会修复该错误。