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