【发布时间】:2014-07-26 18:55:31
【问题描述】:
注意,我的问题太长了,所以我贴了代码here。
这是在 Oracle 11gR2 上。这个问题涉及使用 XMLAGG 连接在关联数组上运行的查询的输出。 这是我最近提出的另外两个问题的后续:Is Oracle's EXTRACT function breaking the NOENTITYESCAPING in the XMLELEMENT? 和 What data structure to use in order to sort this data in PL/SQL?
如果你运行上面粘贴 bin 链接中的代码,你会得到美妙的 ORA-06502: PL/SQL: numeric or value error,但是如果你注释掉以开头的行sorting_table(578),代码运行良好(返回一个很长的串联字符串)。显然它达到了某种内部 Oracle 限制,但我对它是什么感到困惑。我的理解是这里涉及的所有数据类型都是 CLOBS,这是不正确的吗?推荐的解决方法是什么?
select xmlagg(xmlelement(e,stringval, valueSeparator).extract('//text()') order by upper(intval)).GetClobVal()
into lv_value
from table(sorting_table);
【问题讨论】:
-
它在 11gR1 上对我有用。奇怪。
-
您使用
OBJECT TYPE和NESTED TABLE而不是将所有内容放入简单 表中是否有特定原因? -
@Wernfried,在链接的问题中有解释。但它实际上并不是一个嵌套表。
-
@OldProgrammer,谢谢,知道这非常有用。我必须尝试找到一个 11gR1 版本进行测试。
标签: xml oracle plsql oracle11g associative-array