Oracle 中字符串连接太长错误

问题描述 投票:0回答:1

我有两列A和B。A就像一个序列(1,2,3,4),B(b1,b2,b3,b4)是与每个序列相关的数据。我还有一列,让我们为每个 Z 列说 Z(zxxxxxx)。

表格中以这种格式呈现的数据

zxxxxxx  1:b1 
zxxxxxx  2:b2
zxxxxxx  3:b3
zxxxxxx  4:b4

我想要 z 列的输出如下:zxxxxxx 1:b1 2:b2 3:b3 4:b4

除了上面的内容:如果我删除 A 列,它可以工作,但如果我与 B 连接,它会抛出错误。

我编写了以下查询,但收到错误“字符串连接太长”

SELECT 
RTRIM((Xmlagg(Xmlelement(e,(A||':'||B)||',')).extract('//text().getclobval(),','||
chr(10)|| '')
from table_name where decision in ('X','Y')
 and Z='zxxxxxx';
sql oracle plsql
1个回答
0
投票

您似乎想要使用

GROUP BY a
并且仅聚合
B
列,然后连接:

SELECT EMPTY_CLOB()
       || a
       || RTRIM((Xmlagg(Xmlelement(e, B||',')).extract('//text().getclobval(),',')
from   table_name
WHERE  decision in ('X','Y')
AND    Z='zxxxxxx'
GROUP BY a;
© www.soinside.com 2019 - 2024. All rights reserved.