現行ユーザーが現行セッションのこれ以降のDMLリクエストで実行するすべてのユーザー定義関数または外部SQLプロシージャに対して、出力トレースが使用可能になっています。
UDFトレース出力は、table_nameによって定義する実体化されたグローバル一時トレース テーブルに書き込まれます。
- mask_string
- 現行セッションで実行するUDFによる解釈の対象とする任意の文字列。
- 現行セッションで実行するUDFによる解釈の対象とする任意の文字列。
- この文字列は、ユーザーに対して定義されている文字セットの256論理文字以下にします。したがって、Latin文字データ型でUDFを作成した場合は最大長が256バイトになるのに対し、Unicode文字データ型でUDFを作成した場合は最大長が512バイトになります。
- UDFはこの文字列を、このセッションのこのユーザーに対して定義されているデフォルトの文字データ型ではなく、関数の作成時に有効になっていたデフォルトの文字データ型に変換します。
- 必要な変換処理はすべてシステムが実行します。例えば、UnicodeでUDFを作成した場合でも、セッション文字セットがLatinになっているユーザーがそのUDFを呼び出すと、トレース文字列は、そのUDFに渡される前にLatinに変換されます。変換前位のトレース文字列に、ターゲット文字セットの文字に相当しない文字が含まれている場合、エラーが返されます。詳細については、<SQL外部ルーチン プログラミング>を参照してください。
ユーザーのデフォルト文字データ型の定義についての詳細は、CREATE USERを参照してください。
例
以下の例では、現行セッションで関数トレース処理を有効にします。トレース データを書き込むグローバル一時トレース テーブルにはudf_diagnosticsを指定します。
SET SESSION FUNCTION TRACE USING 'diag,3'
FOR TABLE udf_diagnostics;