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
日本語 (日本)

ここでは、UDTの変換、整列、またはキャスト機能を実装するUDFの開発、コンパイル、インストール、および使用の手順の概要を示します。

  1. UDF用のCまたはC++コードを作成し、テストとデバッグを行ないます。

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

  2. CREATE FUNCTION文またはREPLACE FUNCTION文を使用して、ソース コードまたはオブジェクトの場所を指定し、それをサーバー上にインストールします。

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

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

  3. 次のようにして、変換、整列、またはキャスト ルーチンとしてUDFを登録します。
    UDFがUDT用に実装する機能 UDFの登録に使用する文
    キャスト CREATE CASTまたはREPLACE CAST
    整列 CREATE ORDERINGまたはREPLACE ORDERING
    変換 CREATE TRANSFORMまたはREPLACE TRANSFORM
  4. UDFが正しく動作することが確認できるまで、Teradata Databaseで、保護実行モードでUDFをテストします。

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

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