Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie kann ich die Zeitzonenregion von SQLPLUS erhalten?

Ich gehe davon aus, dass SQL Developer ein implizites ALTER SESSION SET time_zone=... vornimmt wenn Sie eine neue Verbindung öffnen.

Ich sehe mehrere Lösungen:

  • Umgebungsvariable TZ definieren auf Client-Host
  • Erstellen Sie einen Datenbank-Trigger und legen Sie die Zeitzone entsprechend fest
  • Ändere die Zeitzone der Datenbank - funktioniert, es sei denn, ein Benutzer stellt seine persönliche Zeitzone ein

Datenbankauslöser:

CREATE OR REPLACE TRIGGER LOG_T_LOGON 
   AFTER LOGON ON DATABASE
DECLARE

BEGIN
   IF ora_login_user IS NULL THEN 
      RETURN;
   END IF;
   IF ora_login_user IN (...) THEN -- Prevent to be executed for EACH user
      execute immediate 'ALTER SESSION SET time_zone = ''America/New_York''';
   END IF;
END;

ENDE;