0

我收到以下查询的上述错误 - 只有在它已经运行了大约 30 分钟之后。
因为我在这段时间之后才收到错误,所以我想知道它是否是由查询结束时的某些东西引起的,例如 ** .EXTRACT**?

我尝试对 Xmlelement 中的所有项目使用TO_CHARandNVL也无济于事。

但是,当我对第 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 列也是数字格式,所以不是格式造成的。

非常感谢任何帮助,
迈克

4

0 回答 0