2013-07-16 44 views
0

我想請你當我執行下面的SQL語句如何解決以下Oracle錯誤無效號碼

SELECT account_identifier,least(to_number(part_1)),least (to_number(part_2)) FROM TEST5 ; 

我得到以下錯誤

ORA-01722: invalid number 
    01722. 00000 - "invalid number" 
    *Cause:  
    *Action: 

你應該知道,當我執行下面的SQL語句

SELECT account_identifier,to_number(part_1),to_number(part_2) FROM TEST5 ; 

它工作正常

回答

1

最有可能您的part_1列或part_2列包含null或字符串值。

請嘗試以下方法發現導致此問題的行:

SELECT * FROM TEST5 WHERE part_1 IS NULL or part_2 IS NULL; 

如果NULL是你的問題,也許你可以用下面的解決:

SELECT account_identifier,least(to_number(part_1)),least (to_number(part_2)) FROM TEST5 WHERE part_1 IS NOT NULL and part_2 IS NOT NULL; 
+0

我想問問你,如果它是包含一個空值將導致錯誤 – lena

+0

是的,它會導致錯誤,因爲最少的函數不知道如何處理NULL,所以它會變得困惑和哭泣自己。 – beiller

+0

但是當我試着min函數我得到同樣的錯誤,所以最小函數不知道如何處理空值 – lena