Wo ändern Sie die NLS_DATE_FORMAT in oracle 11g?
muss ich ändern das NLS_DATE_FORMAT in meinen Gespeicherten Prozedur.scheint, wie seine, eine session-variable und wo muss ich das ändern der variable mask.
sollte es gemacht werden, die in Globale Deklaration oder an anderer Stelle(ich meine von frontend).
alter session set nls_date_format = '...'
docs.oracle.com/cd/E11882_01/server.112/e41084/...Aber, wie man diese für ein Paket?
Führen Sie einfach die SQL
execute immediate
Warum wollen Sie ändern die
NLS_DATE_FORMAT
in der gespeicherten Prozedur verwenden? Wenn Ihr code benötigt, Zeichenfolgen in einem bestimmten format (oder konvertiert Zeichenfolgen in einem bestimmten format zu dates), es sollte mit expliziten casts mit einem expliziten format Maske, in dem Fall die NLS_DATE_FORMAT
ist irrelevant. Wenn Ihr code tut Konvertierungen, die basierend auf der NLS_DATE_FORMAT
sollte es nicht kümmern, was das format ist, nur, dass ein bestimmter Benutzer hat angefordert, für die Daten in einem bestimmten format.InformationsquelleAutor theDbGuy | 2014-11-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie ändern möchten, eine NLS-parameter in einer Prozedur können Sie dann
DBMS_SESSION.SET_NLS
. Gegeben eine Umgebung, die wie folgt aussieht:ausführen der Prozedur ändert das format (man beachte die dreifache Anführungszeichen):
Alternativ können Sie dynamisches SQL verwenden,
EXECUTE IMMEDIATE
, zum Beispiel:Jedoch, als Justin Höhle Noten das ist sehr ungewöhnlich. Wenn Sie konvertieren zwischen Datentypen sollten Sie dies immer explizit mit einer expliziten format. Im Falle von Daten, die korrekte Funktion zu verwenden ist
TO_DATE()
InformationsquelleAutor Ben