본문 바로가기
오라클 게시판/오라클 함수

【오라클 SQL 함수】 SYS_CONTEXT 함수

by 기서무나구물 2021. 10. 21.

포스팅 목차

    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 예제로 만나는 테이블 데이터 처리 방법 리스트 링크
    반응형

    댓글