入出力を実行しないか、 SQLを実行しない外部ストアド プロシージャ - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/qwr1571437338192.ditamap
dita:ditavalPath
ja-JP/qwr1571437338192.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

ここでは、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を使用して、その外部ストアド プロシージャの使用を許可されているユーザーに権限を付与します。