oracle某一字段使用to_number報無效數字的錯


 

 排查:字段中存在字符(如空格等)

SELECT
    pla.po_line_id,
    pla.attribute2 
FROM
    po_lines_all pla 
WHERE
    pla.attribute2 IS NOT NULL 
    AND length( translate ( pla.attribute2, '-.0123456789' || pla.attribute2, '-.0123456789' ) ) <> length( pla.attribute2 )

 

解決:去掉字符,只留數字(如123 .75 0  ——> 123.750)

SELECT
    pla.po_line_id,
    to_number ( translate ( pla.attribute2, '-.0123456789' || pla.attribute2, '-.0123456789' ) ) attribute2 
FROM
    po_lines_all pla 
WHERE
    pla.last_update_date > to_date ( '2020-05-10', 'yyyy-MM-dd' ) 
    AND pla.po_line_id IN ( 11, 12, 13, 14, 15 ) 
ORDER BY
    pla.po_line_id DESC

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM