ここでは、入出力を実行しないUDFの開発、コンパイル、インストール、および使用の手順の概要を示します。
- CREATE FUNCTIONまたはREPLACE FUNCTIONを使用して、ソース コード、オブジェクト、またはパッケージの場所を指定し、それを開発データベースまたはテスト データベースにインストールします。
推奨事項:一般に、SYSLIBやSYSUDTLIBなどのTeradataシステム データベースでは、UDFを作成しません。詳細については、関数のインストールを参照してください。
ソース コードが発行されると、関数がコンパイルされ、関数の属するデータベースに関連するダイナミック リンク ライブラリ(DLLまたはSO)とリンクされ、システム内のデータベースのすべてのノードに配布されます。
- UDFが正しく動作することが確認できるまで、Teradata Databaseで、保護実行モードでUDFをテストします。
Teradata Database用の拡張機能を含むバージョンのGDB(GNU Source-Level Debugger)であるTeradata C/C++ UDF Debuggerを使用できます。詳細については、UDFのデバッグ用C/C++コマンド ラインを参照してください。
保護モードは、UDFのデフォルトの実行モードです。保護モードの場合、Teradata Databaseは、UDFがアクセスするすべてのデータを、独自のローカル ワークスペース内の別個のプロセスとして分離します。そのため、関数の実行速度は遅くなります。メモリ違反などのシステム エラーが発生した場合、エラーは、関数とその関数を実行しているトランザクションに限定されます。
- ALTER FUNCTIONを使用して、非保護実行モードで実行するようUDFを変更します。それ以降にREPLACE FUNCTION文を使ってこの関数を置き換えると、再び実行モードは保護モードに戻ります。
- ステップ3以降のテストを再実行し、正しい動作を確認できるまで非保護実行モードでUDFをテストします。
- 実働データベースにUDFをインストールします。
- GRANTを使用して、そのUDFの使用を許可されているユーザーに権限を付与します。