UDMをデバッグするときには、必ずテストに次の点を含めてください。
- 入力値の範囲検査
- 戻り値の範囲検査
- NULLの処理が適切であること
- 0による除算
- mallocによって取得したすべてのメモリを解放していること
- オープンしているすべてのオペレーティング システムのハンドルが解放され、クローズされていること
Teradata C/C++ UDF Debuggerを使用すると、ユーザー定義のメソッドを開発システムやテスト システム上のデータベース内でデバッグすることができます。Teradata C/C++ UDF Debuggerの詳細については、UDFのデバッグ用C/C++コマンド ラインを参照してください。
SQL警告を意図的に発生させる
コードのうち、メソッドに問題があると思われる部分で、SQL警告を意図的に発生させることができます。警告を意図的に発生させるには、sqlstate戻り引数を01Hxxに設定します(xxは任意の数値)。
パラメータ スタイルSQLを使用する場合は、error_message戻り引数を256文字以下のSQL_TEXT文字列に設定することもできます。
UDMの戻り状態として、警告が発行されます。警告が発行されてもトランザクションは終了しません。したがって、戻り引数は、トランザクションで使用可能な有効な値に設定する必要があります。
1回の呼び出しで戻すことができる警告は1個だけです。
UDMでSQL警告を意図的に発生させる方法は、UDFでSQL警告を意図的に発生させる方法と同じです。UDFでSQLSTATE結果コードとエラー メッセージの戻り引数を設定する方法の例については、SQL警告を意図的に発生させるを参照してください。
トレース テーブルの使用
データベース外のデバッグでは不十分な場合には、トレース テーブルを使用することにより、トレース診断出力を得ることができます。
UDMがトレース テーブルを使用する方法は、UDFがトレース テーブルを使用する方法と同じです。トレース テーブルを使用してUDFをデバッグする方法については、トレース テーブルを使用したデバッグを参照してください。