我們正在使用遠程系統提供的存儲過程。出於測試目的,我從我的開發機器調用此過程。現在的問題是,如果我打電話從蟾蜍程序,一切都OK。但是當我使用SQL Developer調用它時會發生錯誤。to_char根據調用過程的位置產生不同的輸出
我調試和調試,發現這一點:在該過程中,過期日期生成並傳遞給Web服務(不要問我爲什麼)。
這裏是負責生成日期行:
vt_User.EXPDATE := TO_DATE('01.01.2025', 'dd.mm.yyyy');
vs_Value := to_char(vt_User.EXPDATE, 'YYYY-MM-DD"T"HH24:MI:SSTZR');
vs_Value,就像是產生從蟾蜍調用時:
2025-01-01T00:00:00+02:00
但是,如果我從SQL開發打電話,它就像:
2025-01-01T00:00:00EUROPE/ATHENS
除了這些行以外的所有內容都完全相同。我嘗試了許多不同的方法,試圖設置NLS_LANG,改變會話等,但沒有結果。
我需要解決這個問題,因爲當我從Java代碼中調用程序時也會出現同樣的情況,這也是主要問題。
我連接到使用TNS的蟾蜍和SQL Developer中,薄的Java代碼驅動程序遠程數據庫。
什麼是vt_User.EXPDATE的類型?你確定這是一個日期而不是時間戳嗎? –
它是'TIMESTAMP WITH TIME ZONE'的類型' – SelimOber
當你這樣做時會得到什麼:select dualtime中的sessiontimezone,dbtimezone; –