我有兩個甲骨文12C(12.1.0.2.0)數據庫,其中一個在ORA-01722: invalid number
以下查詢(使用SQL開發3.2.20.10)返回'ok'
,而其他結果:甲骨文NVL無效號碼
select 'ok' from dual where 1 = nvl(1, 'X');
爲NVL
Oracle文檔說:
If expr1 is numeric, then Oracle determines which argument has the highest numeric precedence, implicitly converts the other argument to that datatype, and returns that datatype.
爲NLS_COMP
,NLS_SORT
和NLS_LANGUAGE
的值是兩個數據庫之間是相同的,所以他們不應該被CAU在2個參數的數字優先級上發揮不同的作用。這兩個數據庫之間可能有什麼不同,導致返回'ok'
和一個出錯?
他們是相同的版本,是他們對同一臺服務器,您是否通過同一臺客戶機上的相同客戶機連接到它們? – kevinsky
它們都是12.1.0.2.0(服務器和客戶端版本匹配)。他們在不同的服務器上。在這兩種情況下,我都與SQL Developer 3.2.20.10連接。但是,我沒有從同一臺客戶端PC連接到它們。 – hmqcnoesy
我跑了一個測試,「從雙」作品,但「選擇nvl(1,'1')從雙」選擇nvl(1,'X')「不。根據oracle文檔,如果第一個參數是數字,則第二個參數不能用數字表示。 – OldProgrammer