카테고리:

컨텍스트 함수 (일반)

SYS_CONTEXT(SNOWFLAKE$SESSION_ATTRIBUTES 네임스페이스)

SNOWFLAKE$SESSION_ATTRIBUTES 네임스페이스의 :doc:`set_sys_context`를 사용하여 설정된 사용자 지정 세션 특성을 반환합니다.

사용자 지정 세션 특성은 설정되면 변경할 수 없으며 세션 기간 동안 지속됩니다. 애플리케이션 컨텍스트, 사용자 특성 또는 감사 정보와 같은 세션에 대한 메타데이터를 추적하는 데 유용합니다.

참고 항목:

SYS_CONTEXT , SET_SYS_CONTEXT

구문

SYS_CONTEXT(
  'SNOWFLAKE$SESSION_ATTRIBUTES' ,
  '<key>'
)

인자

'SNOWFLAKE$SESSION_ATTRIBUTES'

사용자 지정 세션 특성을 검색하도록 지정합니다.

'key'

검색할 사용자 지정 특성의 이름입니다. 특성 이름은 **대/소문자를 구분**합니다.

반환

이 함수는 VARCHAR 값을 반환합니다.

  • :doc:`set_sys_context`를 사용하여 현재 세션에 설정된 경우 지정된 특성의 값입니다.

  • 특성이 설정되지 않은 경우 NULL입니다.

액세스 제어 요구 사항

사용자 지정 세션 속성을 검색하는 데에는 특별한 권한이 필요하지 않습니다. 모든 사용자는 자신의 세션에서 특성을 검색할 수 있습니다.

사용법 노트

  • 특성을 검색하기 전에 :doc:`set_sys_context`를 사용하여 설정해야 합니다.

  • 특성 이름은 **대/소문자를 구분**합니다. app_context``APP_CONTEXT``는 다른 특성으로 처리됩니다.

  • 특성은 세션 범위가 지정되며 다른 세션에는 표시되지 않습니다.

  • 셸에서 큰따옴표로 묶인 문자열에 함수 호출을 지정하는 경우 $ 문자를 백슬래시(\)로 이스케이프하여 ``$session_attributes``이 셸 변수로 해석되지 않습니다.

다음 예제에서는 사용자 지정 특성을 설정한 다음 검색합니다.

-- Set a custom session attribute
CALL SET_SYS_CONTEXT('SNOWFLAKE$SESSION_ATTRIBUTES', 'app_context', 'production');

-- Retrieve the custom attribute
SELECT SYS_CONTEXT('SNOWFLAKE$SESSION_ATTRIBUTES', 'app_context');
+---------------------------------------------------------------+
| SYS_CONTEXT('SNOWFLAKE$SESSION_ATTRIBUTES', 'app_context')   |
|---------------------------------------------------------------|
| production                                                    |
+---------------------------------------------------------------+

설정되지 않은 특성을 검색하면 NULL이 반환됩니다.

SELECT SYS_CONTEXT('SNOWFLAKE$SESSION_ATTRIBUTES', 'nonexistent_attr');
+------------------------------------------------------------------+
| SYS_CONTEXT('SNOWFLAKE$SESSION_ATTRIBUTES', 'nonexistent_attr') |
|------------------------------------------------------------------|
| NULL                                                             |
+------------------------------------------------------------------+

특성 이름은 대/소문자를 구분합니다.

-- Set attributes with different cases
CALL SET_SYS_CONTEXT('SNOWFLAKE$SESSION_ATTRIBUTES', 'mykey', 'lowercase');
CALL SET_SYS_CONTEXT('SNOWFLAKE$SESSION_ATTRIBUTES', 'MyKey', 'mixedcase');
CALL SET_SYS_CONTEXT('SNOWFLAKE$SESSION_ATTRIBUTES', 'MYKEY', 'uppercase');

-- Each is a distinct attribute
SELECT
  SYS_CONTEXT('SNOWFLAKE$SESSION_ATTRIBUTES', 'mykey') AS lower,
  SYS_CONTEXT('SNOWFLAKE$SESSION_ATTRIBUTES', 'MyKey') AS mixed,
  SYS_CONTEXT('SNOWFLAKE$SESSION_ATTRIBUTES', 'MYKEY') AS upper;
+-----------+-----------+-----------+
| LOWER     | MIXED     | UPPER     |
|-----------+-----------+-----------|
| lowercase | mixedcase | uppercase |
+-----------+-----------+-----------+