Ich habe einen Unix- und einen Linux-Server, die jeweils als Datenbank- und Anwendungsserver verwendet werden. Die Datenbank ist Oracle 10g und der Anwendungsserver ist Weblogic 9.3 MP3 mit installiertem jRockit 1.5. Ich habe einen Verbindungspool in Weblogic Server erstellt.
Ich habe versucht, NLS_DATE_FORMAT aus den Tabellen NLS_DATABASE_PARAMETERS, NLS_SESSION_PARAMETERS und NLS_INSTANCE_PARAMETERS auf vier verschiedene Arten zu lesen.
- Die Verwendung von sqlplus zeigt wie erwartet DD-MON-YYYY für alle an.
- Eine Verbindung vom Pool in meiner Webanwendung zeigt die NLS_SESSION_PARAMETERS-Tabelle als DD-MON-RR, und der Rest der Tabelle zeigt DD-MON-YYYY.
- Ein eigenständiges Java-Programm, das die Datenbankverbindung direkt herstellt, führt zum gleichen Ergebnis wie in (3).
- Wenn ich das gleiche Programm auf meinem PC ausführe, zeigt es das gleiche Ergebnis wie in (1), d.h. DD-MON-JJJJ für alle.
Ich habe weder NLS_LANG noch NLS_DATE_FORMAT in irgendeiner (auf dem Datenbankserver, dem Anwendungsserver oder dem PC) meiner Umgebung eingestellt. Die init.ora hat die Einstellung DD-MON-YYYY.
Was also macht NLS_DATE_FORMAT anders, wenn durch Java-Code auf dem Server zu tun.