SYS_CONTEXT-Funktion Oracle/PLSQL

In diesem Oracle-Lernprogramm wird erläutert, wie Sie die Oracle/PLSQL SYS_CONTEXT-Funktion mit Syntax und Beispielen verwenden.

Beschreibung

Die Oracle/PLSQL-Funktion SYS_CONTEXT kann verwendet werden, um Informationen zur Oracle-Umgebung abzurufen.

Syntax

Die Syntax für die SYS_CONTEXT-Funktion in Oracle/PLSQL lautet:

SYS_CONTEXT( namespace, parameter, [ length ] )

Parameter oder Argumente

namespace Ein Oracle-Namespace, der bereits erstellt wurde. Wenn der Namespace von ‚USERENV‘ verwendet wird, können Attribute zurückgegeben werden, die die aktuelle Oracle-Sitzung beschreiben.

parameter Ein gültiges Attribut, das mit der Prozedur DBMS_SESSION.set_context festgelegt wurde.

length Wahlweise. Es ist die Länge des Rückgabewerts in Bytes. Wenn dieser Parameter nicht angegeben wird oder ein ungültiger Eintrag angegeben wird, wird die sys_context-Funktion standardmäßig auf 256 Byte gesetzt.

Notiz

  • Die SYS_CONTEXT-Funktion gibt einen Zeichenfolgenwert zurück.
  • Die gültigen Parameter für den Namespace ‚USERENV‘ lauten wie folgt: (Beachten Sie, dass nicht alle Parameter in allen Oracle-Versionen gültig sind).
ParameterExplanationOracle 9iOracle 10gOracle 11g
ACTIONRetuoren die Position im ModulNoYesYes
AUDITED_CURSORIDRetuoren die Cursor-ID der SQL zurück, die die Prüfung ausgelöst hatYesYesYes
AUTHENTICATED_IDENTITYRetuoren die bei der Authentifizierung verwendete Identität zurückNoYesYes
AUTHENTICATION_DATAAuthentifizierungsdatenYesYesYes
AUTHENTICATION_METHODRetuoren die Authentifizierungsmethode zurückNoYesYes
AUTHENTICATION_TYPEBeschreibt, wie der Benutzer authentifiziert wurde. Kann einer der folgenden Werte sein: Datenbank, Betriebssystem, Netzwerk oder ProxyYesNoNo
BG_JOB_IDWenn die Sitzung von einem Oracle-Hintergrundprozess eingerichtet wurde, gibt dieser Parameter die Job-ID zurück. Andernfalls wird NULL zurückgegeben.YesYesYes
CLIENT_IDENTIFIERRetuoren die Clientkennung (globaler Kontext) zurück.YesYesYes
CLIENT_INFOInformationen zur BenutzersitzungYesYesYes
CURRENT_BINDBinden Sie Variablen für eine differenzierte PrüfungNoYesYes
CURRENT_SCHEMARetuoren das Standardschema zurück, das im aktuellen Schema verwendet wirdYesYesYes
CURRENT_SCHEMAIDRetuoren den Bezeichner des Standardschemas zurück, das im aktuellen Schema verwendet wirdYesYesYes
CURRENT_SQLRetuoren die SQL zurück, die das Prüfereignis ausgelöst hatYesYesYes
CURRENT_SQL_LENGTHRetuoren die Länge der aktuellen SQL-Anweisung zurück, die das Prüfereignis ausgelöst hatNoYesYes
CURRENT_USERName des aktuellen BenutzersYesNoNo
CURRENT_USERIDUserid des aktuellen BenutzersYesNoNo
DB_DOMAINDomäne der Datenbank aus dem Initialisierungsparameter DB_DOMAINYesYesYes
DB_NAMEName der Datenbank aus dem Initialisierungsparameter DB_NAMEYesYesYes
DB_UNIQUE_NAMEName der Datenbank aus dem Initialisierungsparameter DB_UNIQUE_NAMENoYesYes
ENTRYIDVerfügbare Kennung für ÜberwachungseinträgeYesYesYes
ENTERPRISE_IDENTITYRetuoren die unternehmensweite Identität des Benutzers zurückNoYesYes
EXTERNAL_NAMEExtern des DatenbankbenutzersYesNoNo
FG_JOB_IDWenn die Sitzung von einem Client-Vordergrundprozess eingerichtet wurde, gibt dieser Parameter die Job-ID zurück. Andernfalls wird NULL zurückgegeben.YesYesYes
GLOBAL_CONTEXT_MEMORYDie Nummer, die im globalen Systembereich vom global aufgerufenen Kontext verwendet wirdYesYesYes
GLOBAL_UIDDie globale Benutzer-ID aus Oracle Internet Directory für Enterprise-Sicherheitsanmeldungen. Gibt NULL für alle anderen Anmeldungen zurück.NoNoYes
HOSTName der Hostmaschine, von der aus der Client eine Verbindung hergestellt hatYesYesYes
IDENTIFICATION_TYPERetuoren die Art zurück, wie das Benutzerschema erstellt wurdeNoYesYes
INSTANCEDie Identifizierungsnummer der aktuellen InstanzYesYesYes
INSTANCE_NAMEDer Name der aktuellen InstanzNoYesYes
IP_ADDRESSIP-Adresse des Rechners, von dem aus der Client eine Verbindung hergestellt hatYesYesYes
ISDBARetuoren TRUE zurück, wenn der Benutzer DBA-Berechtigungen hat. Andernfalls wird FALSE zurückgegeben.YesYesYes
LANGDie ISO-Abkürzung für die SpracheYesYesYes
LANGUAGESprache, Gebiet und Charakter der Sitzung. Im folgenden Format: language_territory.charactersetYesYesYes
MODULERetuoren den Anwendungsnamen zurück, der über das Paket DBMS_APPLICATION_INFO oder OCI festgelegt wurdeNoYesYes
NETWORK_PROTOCOLNetzwerkprotokoll verwendetYesYesYes
NLS_CALENDARDer Kalender der aktuellen SitzungYesYesYes
NLS_CURRENCYDie Währung der aktuellen SitzungYesYesYes
NLS_DATE_FORMATDas Datumsformat für die aktuelle SitzungYesYesYes
NLS_DATE_LANGUAGEDie Sprache für DatumsangabenYesYesYes
NLS_SORTBINARY oder die linguistische SortierbasisYesYesYes
NLS_TERRITORYDas Gebiet der aktuellen SitzungYesYesYes
OS_USERDer Benutzername des Betriebssystems für den angemeldeten BenutzerYesYesYes
POLICY_INVOKERDer Aufrufer der Sicherheitsrichtlinienfunktionen auf ZeilenebeneNoYesYes
PROXY_ENTERPRISE_IDENTITYDer Oracle Internet Directory-DN, wenn der Proxy-Benutzer ein Unternehmensbenutzer istNoYesYes
PROXY_GLOBAL_UIDDie globale Benutzer-ID aus Oracle Internet Directory für Benutzer der Sicherheits-Proxy-Benutzer von Unternehmen. Gibt NULL für alle anderen Proxy-Benutzer zurück.NoYesYes
PROXY_USERDer Name des Benutzers, der die aktuelle Sitzung für SESSION_USER geöffnet hatYesYesYes
PROXY_USERIDDie Kennung des Benutzers, der die aktuelle Sitzung im Auftrag von SESSION_USER geöffnet hatYesYesYes
SERVER_HOSTDer Hostname der Maschine, auf der die Instanz ausgeführt wirdNoYesYes
SERVICE_NAMEDer Name des Dienstes, mit dem die Sitzung verbunden istNoYesYes
SESSION_USERDer Datenbank-Benutzername des angemeldeten BenutzersYesYesYes
SESSION_USERIDDie Datenbankkennung des angemeldeten BenutzersYesYesYes
SESSIONIDDie Kennung der ÜberwachungssitzungYesYesYes
SIDSitzungsnummerNoYesYes
STATEMENTIDDie PrüfanweisungskennungNoYesYes
TERMINALDie Betriebssystemkennung der aktuellen SitzungYesYesYes

Gilt für

Die SYS_CONTEXT-Funktion kann in den folgenden Versionen von Oracle/PLSQL verwendet werden:

  • Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i

Beispiel

Schauen wir uns einige Oracle SYS_CONTEXT-Funktionsbeispiele an und untersuchen, wie Sie die SYS_CONTEXT-Funktion in Oracle/PLSQL verwenden.

Beispielsweise: