- 카테고리:
컨텍스트 함수 (일반)
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>'
)
함수 호출을 위한 구문:
SYS_CONTEXT(
'SNOWFLAKE$APPLICATION' ,
'<function>' , '<argument>' [ , ... ]
)
인자¶
'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_PATCHSQL 문이 실행된 애플리케이션의 현재 패치 번호입니다.
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;
'function'호출하려는 함수의 이름입니다. 다음 함수를 호출할 수 있습니다.
'argument' [ , ... ]호출하려는 함수에 전달할 인자입니다.
반환¶
이 함수는 VARCHAR 값 또는 NULL을 반환합니다.
사용법 노트¶
셸에서 큰따옴표로 묶인 문자열에 함수 호출을 지정하는 경우
$문자를 백슬래시(\)로 이스케이프하여 ``$APPLICATION``이 셸 변수로 해석되지 않습니다.예를 들어, |sf-cli|를 사용하고 SQL 문을 큰따옴표로 묶어 명령줄 인자로 지정하는 경우:
snow sql --query "SELECT SYS_CONTEXT('SNOWFLAKE\$APPLICATION', 'NAME');"
예¶
다음 예에서는 애플리케이션의 현재 버전을 반환합니다.
SELECT SYS_CONTEXT('SNOWFLAKE$APPLICATION', 'CURRENT_VERSION');