カテゴリ:

コンテキスト関数 (一般)

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>'
)
Copy

関数を呼び出すための構文:

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

引数

'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;
Copy
'function'

呼び出したい関数の名前。次の関数を呼び出すことができます。

'argument' [ , ... ]

呼び出したい関数に渡す引数。

戻り値

関数は VARCHAR 値または NULL を返します。

使用上の注意

  • シェルの二重引用符で囲まれた文字列で関数呼び出しを指定する場合は、$ 文字をバックスラッシュ(\)でエスケープして、$APPLICATION がシェル変数として解釈されないようにします。

    たとえば、Snowflake CLI を使用していて、SQL ステートメントを二重引用符で囲まれたコマンドライン引数として指定する 場合は、次のようになります。

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

次の例では、アプリケーションの現在のバージョンが返されます。

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