- カテゴリ:
コンテキスト関数 (一般)
SYS_CONTEXT(SNOWFLAKE$APPLICATION 名前空間)¶
Snowflakeネイティブアプリ 内でステートメントが実行されるコンテキストについての情報を返します。
この関数は以下のコンテキストで呼び出すことができます。
所有者の権利 を使用するように構成され、Snowflake Native App 内にある、またはそれによって所有されているストアドプロシージャまたはStreamlitアプリ。
Snowflake Native App が所有する UDF、ビュー、またはポリシー。
Snowflake Native App の 共有データコンテンツ の一部である 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 ステートメントは、アプリケーションを新しいバージョンにアップグレードする セットアップスクリプト で実行されます。
この場合、
CURRENT_VERSIONは新しいバージョンで、INSTALLED_VERSIONはアップグレードされる現在インストールされているバージョンです。アップグレードが完了する前に、実行時間の長いプロシージャまたはクエリの実行が開始されました。
この場合
CURRENT_VERSIONは、プロシージャまたはクエリが実行を開始したときのバージョンであり、INSTALLED_VERSIONはアップグレード完了後のバージョンです。
CURRENT_PATCH現在の SQL ステートメントが実行されるアプリケーションの現在のパッチ番号。
INSTALLED_VERSION現在の SQL ステートメントが実行されるアプリケーションのインストールされたバージョン。
INSTALLED_PATCH現在の SQL ステートメントが実行されるアプリケーションのインストールされたパッチ番号。
IS_DEV_MODEアプリケーションが 開発モード の場合は
TRUE。それ以外の場合はFALSE。この値を BOOLEAN 値 TRUE または FALSE と比較するには、BOOLEAN への値を キャスト します。例:
SELECT SYS_CONTEXT('SNOWFLAKE$APPLICATION', 'IS_DEV_MODE')::BOOLEAN = TRUE;
'function'呼び出したい関数の名前。次の関数を呼び出すことができます。
'argument' [ , ... ]呼び出したい関数に渡す引数。
戻り値¶
関数は VARCHAR 値または NULL を返します。
戻り値は、取得するプロパティ または:ref:
呼び出す関数 <label-sys_context_snowflake_application_function>によって異なります。サポートされているコンテキストのいずれか の外にある SNOWFLAKE$APPLICATION 名前空間で SYS_CONTEXT を呼び出す場合、関数は NULL を返します。
使用上の注意¶
シェルの二重引用符で囲まれた文字列で関数呼び出しを指定する場合は、
$文字をバックスラッシュ(\)でエスケープして、$APPLICATIONがシェル変数として解釈されないようにします。たとえば、Snowflake CLI を使用していて、SQL ステートメントを二重引用符で囲まれたコマンドライン引数として指定する 場合は、次のようになります。
snow sql --query "SELECT SYS_CONTEXT('SNOWFLAKE\$APPLICATION', 'NAME');"
例¶
次の例では、アプリケーションの現在のバージョンが返されます。
SELECT SYS_CONTEXT('SNOWFLAKE$APPLICATION', 'CURRENT_VERSION');