Zu Oracle

Bereich:
Versionsinfo:
SQL
8.2 9.2 10.2 11.1
Erstellung:
Letzte Überarbeitung:
07/2003 MP
05/2009 BK
 Als PDF Downloaden!

Pseudospalten

Kennen Sie eigentlich die Pseudospalten von Oracle? Zuerst wird man sich fragen, was sind eigentlich Pseudospalten?
Pseudospalten sind "Spalten", die es in keiner Tabelle wirklich gibt. Sie geben z. B. die aktuelle Zeilennummer der Ausgabe oder die aktuelle IP-Adresse an. Da jede Ausgabe ein SELECT-Statement voraussetzt, muss auch die aktuelle Zeitausgabe in einem SELECT geschrieben werden. In diesem Zusammenhang wird meist die Dual-Tabelle für die Ausgabe benutzt, da diese nur eine Zeile besitzt und damit die Ausgabe auch nur einmal erscheint.

Beispiele:

Wie lautet der aktuelle Benutzer:

SELECT user FROM dual;

USER
------------------
MARCO

Aktuelle Uhrzeit:

SELECT sysdate FROM dual;

SYSDATE
-------------------
30.07.2003 15:02:54

Ist der aktuelle Benutzer als SYSDBA angemeldet ?

SELECT userenv('ISDBA') as SYSDBA from dual;

SYSDBA
------
FALSE

Aktuelles Terminal von dem man arbeitet?

SELECT userenv('TERMINAL') as "Term" from dual;

Term
---------
GOOFY

Aktuelle Einstellung der NLS-Parameter

SELECT userenv('LANGUAGE') as "NLS" from dual;

NLS
------------------------------------------
GERMAN_GERMANY.WE8ISO8859P1

Ab Version 8i wurde userenv durch eine weitere Funktion ergänzt: sys_context

Auswahl der möglichen Parameter (vollständige Liste im Handbuch SQL Reference)

 

 

CLIENT_INFO

Gibt 64 Byte über die Usersession zurück, die eine Applikation im Package  DBMS_APPLICATION_INFO abgelegt hat.

CURRENT_USER 

Aktueller Benutzer der Session

CURRENT_USERID

Aktuelle Benutzer-ID der Session

CURRENT_SCHEMA 

Aktuell eingestelltes Schema. Dies kann z. B. durch ALTER SESSION SET CURRENT_SCHEMA=<schema>; eingeschalten werden

CURRENT_SCHEMAID 

Id-Nummer des aktuell eingestellten Schemas

DB_DOMAIN 

Domain Name der Datenbank die im init.ora Parameter DB_DOMAIN eingetragen wurde

DB_NAME 

Datenbank Name der im init.ora Parameter DB_NAME eingetragen wurde

BG_JOB_ID 

Job Nummer der aktuellen Session, wenn Sie durch einen Oracle Hintergrundprozess erzeugt wurde. NULL wenn dies nicht der Fall ist

FG_JOB_ID 

Job Nummer der aktuellen Session, wenn Sie durch einen Client Prozeß erzeugt wurde. NULL wenn dies nicht der Fall ist

HOST

Rechnername des Clients

INSTANCE

Instanznummer der aktuellen Instanz (meist 1)

IP_ADDRESS 

IP Adresse des Clients

ISDBA

TRUE wenn der aktuelle Benutzer die SYSDBA Rolle besitzt. FALSE falls nicht. Fehler in Doku: Hier steht die DBA Rolle!

LANGUAGE

Sprache, Territorum und Zeichensatz der aktuellen Session in der Form: language_territory.characterset 

LANG

Länderkürzel (für uns "D")

NETWORK_PROTOCOL 

benutztes Netzwerkprotokoll

NLS_TERRITORY 

Territorum der aktuellen Session

NLS_CURRENCY 

Währung der aktuellen Session

NLS_CALENDAR 

Kalender der aktuellen Session

NLS_DATE_FORMAT 

Datumsformat der aktuellen Session

NLS_SORT 

Sortierreihenfolge der aktuellen Session

SESSION_USER 

Benutzer der aktuellen Session, wie er authentifiziert wurde

SESSION_USERID

Benutzer-ID der aktuellen Session, wie er authentifiziert wurde

OS_USER 

Betriebsystemuser der die Verbindung zur DB aufgebaut hat

SESSIONID

Session ID für Auditing

TERMINAL

Terminal Name für aktuelle Session


Beispiele:

SELECT SYS_CONTEXT('USERENV','LANG') from dual;

SYS_CONTEXT('USERENV','LANG')
-----------------------------------
D

SELECT SYS_CONTEXT('USERENV','OS_USER') from dual;

SYS_CONTEXT('USERENV','OS_USER')
-------------------------------------------------------
marco

 

Suche

Kontakt

Telefon:
  089 6228 6789-0

Telefon (noch gültig):
  089 679090-40

E-Mail Verteiler Monatstipps

Bitte nehmen Sie mich in den Verteiler der monatlichen Tipps & Tricks auf.