カテゴリ:

Information Schemaテーブル関数

APPLICATION_CALLBACK_HISTORY

Snowflakeアカウントにおける|native-apps|の:doc:`コールバック</developer-guide/native-apps/callbacks>`呼び出し履歴に関する情報を返します。各行は、コールバックタイプ、実行モード、状態、エラー情報などを含むコールバック呼び出しを表します。

構文

APPLICATION_CALLBACK_HISTORY(
  [ APPLICATION_NAME => '<application_name>' ]
  [ , CALLBACK_TYPE => '<callback_manifest_name>' ]
  [ , LIMIT => <number> ]
)

オプションの引数

APPLICATION_NAME => 'application_name'

コールバック履歴を取得するためのアプリの名前。指定がない場合は、アカウント内のすべてのアプリの履歴を返します。

CALLBACK_TYPE => 'callback_manifest_name'

マニフェストファイルで定義されたコールバックタイプ。指定がない場合は、指定されたアプリ内のすべてのコールバックタイプの履歴を返します。

LIMIT => number

返す行の最大数。デフォルトは100です。最大値は10000です。

使用上の注意

  • 情報スキーマテーブル関数を呼び出す場合、セッションには使用中の INFORMATION_SCHEMA スキーマ または 完全修飾の関数名が必要です。詳細については、 Snowflake Information Schema をご参照ください。

  • 呼び出し元がアプリ自体でない限り、``QUERY_TEXT``列および``ERROR_MESSAGE``列は非表示になります。

  • この関数を使用するには、以下のいずれかが必要です。

    • アプリに対するOWNERSHIP。

    • アプリに対するMONITOR権限。

    • アプリ自体として実行されること。

出力

この関数は、次の列を返します。

列名

データ型

説明

TYPE

VARCHAR

マニフェストファイルで定義されたコールバックタイプ。

EXECUTION_MODE

VARCHAR

コールバックの実行モード。可能な値は``SYNC``、``ASYNC``です。

APPLICATION_NAME

VARCHAR

コールバックを定義するアプリの名前。

STATE

VARCHAR

コールバック実行の状態。コールバックの状態 をご参照ください。

STARTED_ON

TIMESTAMP_LTZ

コールバックが呼び出されたときのタイムスタンプ。

COMPLETED_ON

TIMESTAMP_LTZ

完了タイムスタンプ。コールバックがまだ完了していない場合はNULLになります。

TRIGGERING_QUERY_ID

VARCHAR

コールバックをトリガーしたSQLステートメントのクエリID。コールバックがSQLクエリによってトリガーされなかった場合(たとえば、アップグレード完了後にトリガーされた場合など)はNULLになります。

QUERY_ID

VARCHAR

コールバックプロシージャ実行のクエリID。コールバックがまだ完了していない場合はNULLになります。

QUERY_TEXT

VARCHAR

プロシージャコールのSQLテキスト。コールバックがまだ完了していない場合はNULLになります。呼び出し元がアプリ自体でない限り、この列は非表示になります。

ERROR_CODE

VARCHAR

エラーコード。STATEが``FAILED``または``ABORTED``でない限り、NULLになります。

ERROR_MESSAGE

VARCHAR

エラーメッセージ。STATEが``FAILED``または``ABORTED``でない限り、NULLになります。呼び出し元がアプリ自体でない限り、この列は非表示になります。

コールバックの状態

次の表は、STATE列の可能な値を示しています。

状態

適用対象

説明

QUEUED

非同期のみ

コールバックはスケジュールされるのを待っています。

SCHEDULED

非同期のみ

コールバックはスケジュールされており、実行を待っています。

EXECUTING

非同期 / 同期

コールバックプロシージャは現在実行中です。

COMPLETED

非同期 / 同期

コールバックプロシージャが正常に終了しました。

FAILED

非同期 / 同期

コールバックプロシージャは、検証(たとえば不正なシグネチャ)または実行に失敗しました。

ABORTED

非同期のみ

内部スケジューリングエラーが発生しました。この状態では、サポートの介入が必要です。

特定のアプリケーションのコールバック履歴を取得します。

SELECT *
FROM TABLE(
    INFORMATION_SCHEMA.APPLICATION_CALLBACK_HISTORY(
        APPLICATION_NAME => 'my_app'));

カスタムの制限を指定して、特定のコールバックタイプのコールバック履歴を取得します。

SELECT *
FROM TABLE(
    INFORMATION_SCHEMA.APPLICATION_CALLBACK_HISTORY(
        APPLICATION_NAME => 'my_app',
        CALLBACK_TYPE => 'after_configuration_change',
        LIMIT => 100));