17.00 - 17.05 - 入出力を実行しないか、 SQLを実行しない外部ストアド プロシージャ - 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
日本語 (日本)

ここでは、CLIv2を使用せず、入出力を実行しないCまたはC++外部ストアド プロシージャの開発、コンパイル、インストール、および呼び出しの手順の概要を示します。

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

    推奨事項:一般に、SYSLIBやSYSUDTLIBなどのTeradataシステム データベースでは、外部ストアド プロシージャを作成しません。詳細は、C/C++外部ストアド プロシージャのインストールを参照してください。

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

  2. 正しく動作することが確認できるまで、Teradata Databaseで、保護実行モードで外部ストアド プロシージャをテストおよびデバッグします。

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

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

  3. ALTER PROCEDUREを使用して、非保護実行モードで実行するよう外部ストアド プロシージャを変更します。
  4. ステップ3以降のテストを再実行し、正しい動作を確認できるまで非保護実行モードで外部ストアド プロシージャをテストします。
  5. 外部ストアド プロシージャを実働Teradata Databaseにインストールします。
  6. GRANTを使用して、その外部ストアド プロシージャの使用を許可されているユーザーに権限を付与します。