카테고리:

컨텍스트 함수 (일반)

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

Snowflake Native App 내에서 문이 실행되는 컨텍스트에 대한 정보를 반환합니다.

다음 컨텍스트에서 이 함수를 호출할 수 있습니다.

  • :doc:`소유자 권한</developer-guide/native-apps/restricted-callers-rights>`을 사용하도록 구성되었으며 Snowflake Native App 내부에 있거나 소유한 저장 프로시저 또는 Streamlit 앱입니다.

  • |native-app|가 소유한 UDF, 뷰 또는 정책입니다.

  • |native-app|의 :doc:`공유 데이터 콘텐츠</developer-guide/native-apps/preparing-data-content>`의 일부인 UDF, 뷰 또는 정책입니다.

다른 모든 컨텍스트에서 함수는 NULL을 반환합니다.

참고 항목:

SYS_CONTEXT , SYS_CONTEXT(SNOWFLAKE$ENVIRONMENT 네임스페이스) , SYS_CONTEXT(SNOWFLAKE$ORGANIZATION 네임스페이스) , SYS_CONTEXT(SNOWFLAKE$ORGANIZATION_SESSION 네임스페이스) , SYS_CONTEXT(SNOWFLAKE$SESSION 네임스페이스) , IS_APPLICATION_ROLE_ACTIVATED(SYS_CONTEXT 함수)

구문

속성 검색을 위한 구문:

SYS_CONTEXT(
  'SNOWFLAKE$APPLICATION' ,
  '<property>'
)
Copy

함수 호출을 위한 구문:

SYS_CONTEXT(
  'SNOWFLAKE$APPLICATION' ,
  '<function>' , '<argument>' [ , ... ]
)
Copy

인자

'SNOWFLAKE$APPLICATION'

속성을 검색하거나 함수를 호출하여 함수가 호출되는 애플리케이션에 대한 컨텍스트 정보를 반환하도록 지정합니다.

'property'

검색할 속성의 이름입니다. 다음 속성을 지정할 수 있습니다.

속성

설명

NAME

애플리케이션의 이름입니다.

CURRENT_VERSION

현재 SQL 문이 실행되는 애플리케이션의 현재 버전입니다.

CURRENT_VERSION 속성의 값은 다음과 같은 상황에서 INSTALLED_VERSION 속성과 다를 수 있습니다.

  • SQL 문은 애플리케이션을 새 버전으로 업그레이드하는 :doc:`설치 스크립트</developer-guide/native-apps/creating-setup-script>`에서 실행됩니다.

    이 경우, ``CURRENT_VERSION``은 새 버전이고, ``INSTALLED_VERSION``은 현재 설치된 버전 중 업그레이드 중인 버전입니다.

  • 업그레이드가 완료되기 전에 장기 실행 프로시저 또는 쿼리 실행을 시작했습니다.

    이 경우, ``CURRENT_VERSION``은 프로시저 또는 쿼리 실행을 시작했을 때의 버전이고, ``INSTALLED_VERSION``은 업그레이드가 완료된 후의 버전입니다.

CURRENT_PATCH

SQL 문이 실행된 애플리케이션의 현재 패치 번호입니다.

INSTALLED_VERSION

현재 SQL 문이 실행되는 애플리케이션의 설치된 버전입니다.

INSTALLED_PATCH

현재 SQL 문이 실행된 애플리케이션의 설치된 패치 번호입니다.

IS_DEV_MODE

애플리케이션이 :ref:`개발 모드<label-native_apps_dev_mode_about>`인 경우 값은 ``TRUE``이고 그렇지 않은 경우 값은 ``FALSE``입니다.

이 반환 값을 BOOLEAN 값 TRUE 또는 FALSE와 비교하려면 :ref:`캐스트<label-data_type_explicit_casting>`하여 값을 BOOLEAN로 반환합니다. 예:

SELECT SYS_CONTEXT('SNOWFLAKE$APPLICATION', 'IS_DEV_MODE')::BOOLEAN = TRUE;
Copy
'function'

호출하려는 함수의 이름입니다. 다음 함수를 호출할 수 있습니다.

'argument' [ , ... ]

호출하려는 함수에 전달할 인자입니다.

반환

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

  • 반환 값은 검색 중인 속성 또는 :ref:`호출 중인 함수<label-sys_context_snowflake_application_function>`에 따라 다릅니다.

  • 지원되는 컨텍스트 외부에서 SNOWFLAKE$APPLICATION 네임스페이스를 사용하여 SYS_CONTEXT를 호출하는 경우 함수는 NULL을 반환합니다.

사용법 노트

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

    예를 들어, |sf-cli|를 사용하고 SQL 문을 큰따옴표로 묶어 명령줄 인자로 지정하는 경우:

    snow sql --query "SELECT SYS_CONTEXT('SNOWFLAKE\$APPLICATION', 'NAME');"
    
    Copy

다음 예에서는 애플리케이션의 현재 버전을 반환합니다.

SELECT SYS_CONTEXT('SNOWFLAKE$APPLICATION', 'CURRENT_VERSION');
Copy