17.00 - 17.05 - 入出力を実行せずUDT機能を実装しないUDF - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1147-170K-JPN
Language
日本語 (日本)

ここでは、入出力を実行しないUDFの開発、コンパイル、インストール、および使用の手順の概要を示します。

  1. CREATE FUNCTIONまたはREPLACE FUNCTIONを使用して、ソース コード、オブジェクト、またはパッケージの場所を指定し、それを開発データベースまたはテスト データベースにインストールします。

    推奨事項:一般に、SYSLIBやSYSUDTLIBなどのTeradataシステム データベースでは、UDFを作成しません。詳細については、関数のインストールを参照してください。

    ソース コードが発行されると、関数がコンパイルされ、関数の属するデータベースに関連するダイナミック リンク ライブラリ(DLLまたはSO)とリンクされ、システム内のデータベースのすべてのノードに配布されます。

  2. UDFが正しく動作することが確認できるまで、Teradata Databaseで、保護実行モードでUDFをテストします。

    Teradata Database用の拡張機能を含むバージョンのGDB(GNU Source-Level Debugger)であるTeradata C/C++ UDF Debuggerを使用できます。詳細については、UDFのデバッグ用C/C++コマンド ラインを参照してください。

    保護モードは、UDFのデフォルトの実行モードです。保護モードの場合、Teradata Databaseは、UDFがアクセスするすべてのデータを、独自のローカル ワークスペース内の別個のプロセスとして分離します。そのため、関数の実行速度は遅くなります。メモリ違反などのシステム エラーが発生した場合、エラーは、関数とその関数を実行しているトランザクションに限定されます。

  3. ALTER FUNCTIONを使用して、非保護実行モードで実行するようUDFを変更します。
    それ以降にREPLACE FUNCTION文を使ってこの関数を置き換えると、再び実行モードは保護モードに戻ります。
  4. ステップ3以降のテストを再実行し、正しい動作を確認できるまで非保護実行モードでUDFをテストします。
  5. 実働データベースにUDFをインストールします。
  6. GRANTを使用して、そのUDFの使用を許可されているユーザーに権限を付与します。