我有一些PLSQL代码调用远程过程来发送XMLType。但它的作用是将XMLType分成多个varchar2(4000)参数,程序接受这些参数。远程过程通过DBLink调用。
为什么必须拆分XMLType?此限制是否适用于最近的数据库版本(10g)?
答案 0 :(得分:2)
因为sys.xmltype是用户定义的类型。
可能您正在获得PLS-00453 - 对象表或用户定义不允许进行远程操作。
它可能适用于所有数据库版本(包括10g和11g)。
答案 1 :(得分:1)
在大多数情况下,Oracle不支持通过数据库链接发送用户定义类型或LOB的句柄。 XMLType可以存储为LOB或UDT,并且可能以相同的方式在内存中处理,因此可以理解它不起作用。
This question讨论了一般问题并提供了一些可能的解决方法。
答案 2 :(得分:1)
这是甲骨文的长期(和愚蠢)问题。
超过一定大小的LOBS不会成功转移,您必须将大数据分成较小的块并稍后重新组合。
我无法相信Oracle可以不解决这个问题,我已经意识到自Oracle 8以来的问题,但是更新的版本可能会修复该错误。