В этом учебном пособии вы узнаете, как использовать Oracle/PLSQL функцию SYS_CONTEXT с синтаксисом и примерами.
Описание
Oracle/PLSQL функция SYS_CONTEXT используется для получения информации о состоянии среды окружения Oracle.
Синтаксис
Синтаксис Oracle/PLSQL функции SYS_CONTEXT:
Параметры или аргументы
namespace - пространство имен Oracle, которое уже было создано. Если пространство имен 'USERENV' используется, могут быть возвращены атрибуты описания текущей сессии Oracle.
parameter - допустимый атрибутом, который был установлен с помощью процедуры DBMS_SESSION.SET_CONTEXT.
length - необязательный. Это длина возвращаемого значения в байтах. Если этот параметр не указан или если недопустимый ввод, функция SYS_CONTEXT по умолчанию будет 256 байт.
Примечание
Допустимые параметры для пространства имен 'USERENV': (Обратите внимание, что не все параметры действительны во всех версиях Oracle)
Parameter | Explanation | Oracle 9i | Oracle 10g | Oracle 11g |
---|---|---|---|---|
ACTION | Returns the position in the module | No | Yes | Yes |
AUDITED_CURSORID | Returns the cursor ID of the SQL that triggered the audit | Yes | Yes | Yes |
AUTHENTICATED_IDENTITY | Returns the identity used in authentication | No | Yes | Yes |
AUTHENTICATION_DATA | Authentication data | Yes | Yes | Yes |
AUTHENTICATION_METHOD | Returns the method of authentication | No | Yes | Yes |
AUTHENTICATION_TYPE | Describes how the user was authenticated. Can be one of the following values: Database, OS, Network, or Proxy | Yes | No | No |
BG_JOB_ID | If the session was established by an Oracle background process, this parameter will return the Job ID. Otherwise, it will return NULL. | Yes | Yes | Yes |
CLIENT_IDENTIFIER | Returns the client identifier (global context) | Yes | Yes | Yes |
CLIENT_INFO | User session information | Yes | Yes | Yes |
CURRENT_BIND | Bind variables for fine-grained auditing | No | Yes | Yes |
CURRENT_SCHEMA | Returns the default schema used in the current schema | Yes | Yes | Yes |
CURRENT_SCHEMAID | Returns the identifier of the default schema used in the current schema | Yes | Yes | Yes |
CURRENT_SQL | Returns the SQL that triggered the audit event | Yes | Yes | Yes |
CURRENT_SQL_LENGTH | Returns the length of the current SQL statement that triggered the audit event | No | Yes | Yes |
CURRENT_USER | Name of the current user | Yes | No | No |
CURRENT_USERID | Userid of the current user | Yes | No | No |
DB_DOMAIN | Domain of the database from the DB_DOMAIN initialization parameter | Yes | Yes | Yes |
DB_NAME | Name of the database from the DB_NAME initialization parameter | Yes | Yes | Yes |
DB_UNIQUE_NAME | Name of the database from the DB_UNIQUE_NAME initialization parameter | No | Yes | Yes |
ENTRYID | Available auditing entry identifier | Yes | Yes | Yes |
ENTERPRISE_IDENTITY | Returns the user's enterprise-wide identity | No | Yes | Yes |
EXTERNAL_NAME | External of the database user | Yes | No | No |
FG_JOB_ID | If the session was established by a client foreground process, this parameter will return the Job ID. Otherwise, it will return NULL. | Yes | Yes | Yes |
GLOBAL_CONTEXT_MEMORY | The number used in the System Global Area by the globally accessed context | Yes | Yes | Yes |
GLOBAL_UID | The global user ID from Oracle Internet Directory for enterprise security logins. Returns NULL for all other logins. | No | No | Yes |
HOST | Name of the host machine from which the client has connected | Yes | Yes | Yes |
IDENTIFICATION_TYPE | Returns the way the user's schema was created | No | Yes | Yes |
INSTANCE | The identifier number of the current instance | Yes | Yes | Yes |
INSTANCE_NAME | The name of the current instance | No | Yes | Yes |
IP_ADDRESS | IP address of the machine from which the client has connected | Yes | Yes | Yes |
ISDBA | Returns TRUE if the user has DBA privileges. Otherwise, it will return FALSE. | Yes | Yes | Yes |
LANG | The ISO abbreviate for the language | Yes | Yes | Yes |
LANGUAGE | The language, territory, and character of the session. In the following format: language_territory.characterset | Yes | Yes | Yes |
MODULE | Returns the appplication name set through DBMS_APPLICATION_INFO package or OCI | No | Yes | Yes |
NETWORK_PROTOCOL | Network protocol used | Yes | Yes | Yes |
NLS_CALENDAR | The calendar of the current session | Yes | Yes | Yes |
NLS_CURRENCY | The currency of the current session | Yes | Yes | Yes |
NLS_DATE_FORMAT | The date format for the current session | Yes | Yes | Yes |
NLS_DATE_LANGUAGE | The language used for dates | Yes | Yes | Yes |
NLS_SORT | BINARY or the linguistic sort basis | Yes | Yes | Yes |
NLS_TERRITORY | The territory of the current session | Yes | Yes | Yes |
OS_USER | The OS username for the user logged in | Yes | Yes | Yes |
POLICY_INVOKER | The invoker of row-level security policy functions | No | Yes | Yes |
PROXY_ENTERPRISE_IDENTITY | The Oracle Internet Directory DN when the proxy user is an enterprise user | No | Yes | Yes |
PROXY_GLOBAL_UID | The global user ID from Oracle Internet Directory for enterprise user security proxy users. Returns NULL for all other proxy users. | No | Yes | Yes |
PROXY_USER | The name of the user who opened the current session on behalf of SESSION_USER | Yes | Yes | Yes |
PROXY_USERID | The identifier of the user who opened the current session on behalf of SESSION_USER | Yes | Yes | Yes |
SERVER_HOST | The host name of the machine where the instance is running | No | Yes | Yes |
SERVICE_NAME | The name of the service that the session is connected to | No | Yes | Yes |
SESSION_USER | The database user name of the user logged in | Yes | Yes | Yes |
SESSION_USERID | The database identifier of the user logged in | Yes | Yes | Yes |
SESSIONID | The identifier of the auditing session | Yes | Yes | Yes |
SID | Session number | No | Yes | Yes |
STATEMENTID | The auditing statement identifier | No | Yes | Yes |
TERMINAL | The OS identifier of the current session | Yes | Yes | Yes |
Применение
Функцию SYS_CONTEXT можно использовать в следующих версиях Oracle/PLSQL:
- Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i
Пример
Рассмотрим несколько примеров функции Oracle SYS_CONTEXT и изучим, как использовать функцию SYS_CONTEXT в Oracle/PLSQL.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
SELECT SYS_CONTEXT('USERENV', 'LANG') FROM DUAL; --Результат: RU SELECT SYS_CONTEXT('USERENV', 'LANGUAGE') FROM DUAL; --Результат: RUSSIAN_CIS.CL8MSWIN1251 SELECT SYS_CONTEXT('USERENV', 'NLS_CALENDAR') FROM DUAL; --Результат: GREGORIAN SELECT SYS_CONTEXT('USERENV', 'NLS_DATE_FORMAT') FROM DUAL; --Результат: DD.MM.RR SELECT SYS_CONTEXT('USERENV', 'NLS_TERRITORY') FROM DUAL; --Результат: CIS |