0
我有在一個表中尋找重複值以下SQL查詢(兩個值被空必須被歸類爲重複,因此,使用NVL的):甲骨文「無效號碼」引起TO_CHAR函數
select * from PersonLinkTable personLink
where personLink.RefPerson = 100
and nvl(to_char(personLink.PersonLinkType), '###') = nvl(to_char(PersonLinkTable.PersonLinkType), '###') // Repeats for required columns
第三行重複所需的列,並在將來添加新列時自動生成。問題是,當我添加to_char時,這被測試並導致「無效數字」Oracle錯誤。我相信在日後添加任何日期列時,需要使用to_char。
爲什麼以這種方式使用to_char會導致「無效數字」錯誤,以及使用它的正確方法是什麼?此刻的列類型是varchar2,char和number。
此查詢在SQL Server上正常工作,但發生了一些更改 - no to_char,isnull而不是nvl,空值更改爲空字符串而不是'###'。這是一個較大的查詢的一部分,並且在它周圍有「並且不存在」。
謝謝大衛,你的回答讓我知道我需要的修復。事實證明,「無效數字」錯誤不是由to_char引起的,而是由數字字段上的nvl引起的,該字段周圍沒有to_char。所以事後看來,我的問題應該是像「什麼導致無效數字錯誤,我可以使用to_char來修復它?」。 –