错误ORA-01722:使用Xmlagg / Xmlelement在Select中使用Number无效

时间:2017-07-09 07:30:19

标签: xml oracle select string-concatenation ora-01722

我收到以下查询的上述错误 - 只有在它已经运行约30分钟后才会出现 由于我在此之后才收到错误,我想知道它是否是由查询结束时的某些内容引起的,例如** .EXTRACT **?

我尝试使用TO_CHARNVL来处理Xmlelement中没有帮助的所有项目。

但是,当我为第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列也是数字格式,因此不能由格式引起。

非常感谢任何帮助,
麦克

0 个答案:

没有答案