我收到以下查询的上述错误 - 只有在它已经运行了大约 30 分钟之后。
因为我在这段时间之后才收到错误,所以我想知道它是否是由查询结束时的某些东西引起的,例如 ** .EXTRACT
**?
我尝试对 Xmlelement 中的所有项目使用TO_CHAR
andNVL
也无济于事。
但是,当我对第 2 到第 6 列分别使用相同的结构(Rtrim / Xmlagg / Xmlelement)时,它可以正常工作(它只是对我没有帮助)。
Listagg 也可以,但不允许使用足够的字符。
有人可以告诉我我在这里做错了什么吗?
错误信息:
ORA-01722 ... 无效使用 NUMBER。
我的查询:
SELECT
a.column1 AS ID
, RTRIM
(
XMLAGG
(
XMLELEMENT
(
e, 'Column2: ' || b.column2 ||
'Column3: ' || SUBSTR(c.column3, 1, 50) || '...' ||
'Column4: ' || b.column4 ||
'Column5: ' || TO_CHAR(b.column5, 'FM9,990.00') ||
'Column6: ' || TO_CHAR(b.column6, 'FM9,990.00') ||
'---'
) ORDER BY b.column2
).EXTRACT('//text()'), ','
) AS AD
, TO_CHAR(b.column7, 'FM9,990.00') AS GN
, TO_CHAR(b.column8, 'FM9,990.00') AS GU
, TO_CHAR((b.column7 + b.column8), 'FM9,990.00') AS GB
FROM
/* ... */
这里的问题是否有可能是我','
用作 EXTRACT 分隔符但在我的列值中的某处也可能有逗号?
更新:
当我取出第 5 列和第 6 列的行时,它可以工作。第 4 列也是数字格式,所以不是格式造成的。
非常感谢任何帮助,
迈克