포스팅 목차
o SYS_CONTEXT
문법
sys_context::=
목적
SYS_CONTEXT함수는 문맥 namespace와 관련된 parameter의 값을 반환한다.
이 함수는 SQL과 PL/SQL 문장에 사용될 수 있다.
namespace와 parameter에는, 문자열 또는 namespace 또는 속성을 지정하는 문자열로 결정되는 식을 지정할 수 있다. 문맥 namespace는 이미 생성될 필요가 있고, 연관된 parameter와 그 값은 DBMS_SESSION.set_context 프러시저를 이용하여 설정될 필요가 있다. namespace는 유요한 SQL식별자를 필요로 한다. parameter 명은 문자열을 지정할 수 있다. 대소문자를 구별하지 않고, length는 30바이트를 초과하지 않는다.
반환 값은 VARCHAR2 데이터형이다. 반환 값의 기본적 최대 사이즈는 256바이트이다. 옵션 length파라미터를 지정하여 이 기본적 값을 초과할 수 있는데, 이 값은 NUMBER 또는 암묵적으로 NUMBER로 변환 가능한 값이다. 이 값의 유효한 범위는 1~4000바이트이다. 만약 유효하지 않는 값을 지정하면, 오라클 데이터 베이스는 그 값을 무시하고, 기본적 값을 사용한다.
관련 함수
함수명 | 함수내용 |
SYS_CONTEXT | 문맥 namespace와 관련된 parameter의 값을 반환. |
SYS_GUID | 16바이트로 구성된 고유전역식별자(globally unique identifier,RAW 값)을 생성하여 반환. |
SYS_TYPEID | 피연산자(operand)의 대부분 지정한 형태의 typeid를 반환. |
UID | 세션 사용자의 유일한 식별하는 정수를 반환.(로그인 유저) |
USER | VARCHAR2 형태를 가지는 세션 사용자(로그인 유저)의 이름을 반환. |
USERENV | 현재 세션에 대한 정보를 반환. |
예제
다음 예제는 데이터베이스에서 로그인한 사용자 명을 반환한다.
Oracle Program |
CONNECT OE/OE
SELECT SYS_CONTEXT ('USERENV', 'SESSION_USER')
FROM DUAL;
Results |
SYS_CONTEXT ('USERENV', 'SESSION_USER')
------------------------------------------------------
OE
다음 가상 예제는 hr_apps를 생성 시에 문맥 hr_apps와 관련된 PL/SQL패키지에서 속성 group_no에 대한 값을 설정한 그룹 번호를 반환한다.
Oracle Program |
SELECT SYS_CONTEXT ('hr_apps', 'group_no') "User Group"
FROM DUAL;
Table 7-11 Namespace USERENV의 파라미터의 사전 정의
파라미터 | 설명 | |
ACTION | 모듈(어플리케이션명)에서 위치를 식별하고, DBMS_APPLICATION_INFO패키지 또는 OCI를 통해 설정한다. | 32 |
AUDITED_CURSORID | 감사를 트리거한 SQL의 커서 ID를 반환한다. 이 파라미터는 fine-grained 감사 환경에서 유효하지 않는다. 만약 이 파라미터를 fine-grained 감사 환경에서 지정하지 않으면, 오라클 데이터베이스는 항상 NULL을 반환한다. · Fine-grained: 클라이언트 애플리케이션과 커넥터의 대화가 같은 주소 공간에서 실행되는 것을 서술한다. |
NA |
AUTHENTICATION_DATA | 로그인 사용자 인증에 이용되는 데이터를 반환. X.503 인증된 세션을 인증하면서, 이 필드는 HEX2 포맷으로 인증의 문맥을 반환한다. | 256 |
AUTHENTICATION_TYPE | 사용자가 어떻게 인증되는지를 반환한다.DATABASE: 사용자 명/패스워드 인증OS: 운영 시스템 외부 사용자 인증NETWORK: 네트워크 프로토콜 또는 ANO 인증PROXY: OCI 프로시 연결 인증 | 30 |
BG_JOB_ID | 만약 오라클 데이터베이스 백그라운드 프로세스에의해 현재 세션에 의해 확립되었다면, 현재세션의 JOB ID를 반환한다. 만약 백그라운드 프로세스에 의해 확립되지 않으면, NULL을 반환한다. | 64 |
CLIENT_IDENTIFIER | DBMS_SESSION.SET_IDENTIFIER 프로시져, OCI 속성 OCI_ATTR_CLIENT_IDENTIFIER 또는 JAVA CLASS Oracle.jdbc.OracleConnection.setClientIdentifier를 통하여 어플리케이션에 의해서 설정된 식별자를 반환한다. 이 속성은 같은 데이터베이스 사용자로써 인증된 경량 어플리케이션 사용자를 식별하기 위해 여러 데이터베이스 컴포넌트에 의해 사용된다. | 64 |
CLIENT_INFO | DBMS_APPLICATION_INFO 패키지를 이용하는 어플리케이션을 저정할수 있는 사용자 세션의 정보를 64byte까지 반환한다. | 64 |
CURRENT_SCHEMA | 현재 스키마에서 이용되는 기본 스키마명을 반환한다. 이 값은 ALTER SESSION SET CURRENT_SCHEMA 문장을 이용하여 변경할수 있다. | 30 |
CURRENT_SCHEMAID | 현재 세션에서 이용되는 기본적 schema ID. | 30 |
CURRENT_SQL CURRENT_SQLn | CURRENT_SQL은 fine-grained 감사 이벤트를 트리거에 의해서 실행한 현재 SQL의 최초 4KB를 반환한다. CURRENT_SQLn 속성은 차후의 4K-byte 증가분을 반환한다. 이때 n은 1~7까지의 정수이다. CURRENT_SQL1은 4K~8K를 반환,CURRENT_SQL2는 8~12KB등과 같이 반환한다. fine-grained 감사 기능에 대한 이벤트 핸들러 내에서 이 속성을 지정할수 있다. ·Fine-grained: 클라이언트 애플리케이션과 커넥터의 대화가 같은 주소 공간에서 실행되는 것을 서술한다. |
4 |
CURRENT_USER | 이 속성은 반대한다. 대신에 SESSION_USER속성을 이용. | 30 |
CURRENT_USERID | 이 속성은 반대한다. 대신에 SESSION_USERID 속성을 이용. | 30 |
DB_DOMAIN | DB_DOMAIN초기화 파라미터에서 지정된 데이터베이스의 도메인. | 256 |
DB_NAME | DB_NAME 초기화 파라미터에서 지정된 데이터베이스 명. | 30 |
DB_UNIQUE_NAME | DB_UNIQUE_NAME 초기화 파라미터에서 지정된 데이터베이스명. | 30 |
ENTRYID | 현재 감사 엔트리 번호를 반환한다. 감사 엔트리ID 순서는 fine-grained 감사 기록과 정기적인 감사 기록을 공유된다. 분산 SQL 문장에서 이 속성을 이용할수 없다. | 30 |
EXTERNAL_NAME | 데이터 베이스 사용자의 외부 명을 반환한다. SSL은 v.503 인증을 이용하여 세션을 인증함으로, 이 파라미터는 사용자 인증에 저장된 구분된 이름(DN)을 반환한다. | 256 |
FG_JOB_ID | 만약 클라이언트 foreground 프로세스에 의해 확립되면 현재 세션의 JOB ID를 반환한다. 만약 세션이 foreground process에 의해 확립되지 않으면 NULL을 반환한다. | 30 |
GLOBAL_CONTEXT_MEMORY | 문맥에 글로벌 액세스에 의해 시스템 글로벌 영역에서 이용된 수치를 반환. | NA |
HOST | 클라이언트가 접속된 호스트 머신의 이름. | 54 |
INSTANCE | 현재 인스턴스의 인스턴스 식별 번호. | 30 |
IP_ADDRESS | 클라이언트가 접속된 머신의 IP 주소. | 30 |
ISDBA | 운영 시스템 또는 패스워드 파일을 통해서 사용자가 DBA권한을 가지고 있으면 인증되었을경우 TRUE를 반환. | 30 |
LANG | 기존의 'LANGUAGE'파라미터보다 짧은 언어명에 대한 ISO약칭. | 62 |
LANGUAGE | 세션에 의해 이용되는 언어와 지역을 데이타베이스 문자 세트를 포함한 다음 서식을 반환. language_territory.characterset | 52 |
MODULE | DBMS_APPLICATION_INFO패키지 또는 OCI를 통한 에플리케이션명(모듈). | 48 |
NETWORK_PROTOCOL | 접속 문자열의 'PROTOCOL=protocol' 부분에서 지정된 통신에 이용되는 네트워크 프로토콜. | 256 |
NLS_CALENDAR | 현재 세션의 현재 달력 | 62 |
NLS_CURRENCY | 현재 세션의 통화 | 62 |
NLS_DATE_FORMAT | 세션에 대한 날짜 서식 | 62 |
NLS_DATE_LANGUAGE | 날짜를 표시하기 위해 이용되는 언어. | 62 |
NLS_SORT | BINARY 또는 언어 소트 기준. | 62 |
NLS_TERRITORY | 현재 세션의 지역. | 62 |
OS_USER | 데이터베이스 세션을 초기화 하는 클라이언트 프로세스의 운영 시스텀 사용자 명. | 30 |
PROXY_USER | SESSION_USER의 현재 세션을 오픈한 데이터 베이스 사용자명. | 30 |
PROXY_USERID | SESSION_USER의 현재 세션을 오픈한 데이터 베이스 사용자 ID. | 30 |
SERVICE_NAME | 주어진 세션이 접속하고있는 서비스의 명. | 64 |
SESSION_USER | 현재 사용자가 인증되고 있는 데이터베이스 사용자명. 이 값은 세션이 유지되는 동안에 같다. | 30 |
SESSION_USERID | 현재 사용자가 인증되고 있는 데이터 베이스 사용자 명의 ID. | 30 |
SESSIONID | 감사 세션 식별자. 분산된 SQL문에서 이 속성은 이용할수 없다. | 30 |
STATEMENTID | 감수 문자 식별자.STATEMENTID는 주어진 세션에서 감사된 SQL문장의 번호를 나타낸다. | NA |
TERMINAL | 현재 세션의 클라이언트에 대한 운영 시스템 식별자를 반환한다. 분산 SQL문장에서, 이 속성은 로컬 세션에 대한 식별자를 반환한다. 분산 환경에서, 단지 SELECT문장에서만 지원되고, INSERT,UPDATE,DELETE 환경에서는 사용할 수 없다. (이 파라미터의 반환 length는 운영 시스템에 따라 다르다.) | 10 |
오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크 |
[SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크 |
'오라클 게시판 > 오라클 함수' 카테고리의 다른 글
【오라클(Oracle) SQL 함수】 SYS_EXTRACT_UTC 함수 (0) | 2021.10.21 |
---|---|
【오라클(Oracle) SQL 함수】SYS_DBURIGEN 함수 (0) | 2021.10.21 |
【오라클(Oracle) SQL 함수】 SUM 함수 (0) | 2021.10.21 |
[오라클 SQL 함수] SYS_CONNECT_BY_PATH 함수 (0) | 2021.10.21 |
【오라클(Oracle) SQL 함수】 SUBSTR 함수 (0) | 2021.10.21 |
댓글