ここでは、CLIv2を使用してSQLを実行するCまたはC++外部ストアド プロシージャの開発、コンパイル、インストール、および呼び出しの手順の概要を示します。
- 外部ストアド プロシージャ用のCまたはC++コードを作成し、テストとデバッグを行ないます。
Teradata Database用の拡張機能を含むバージョンのGDB(GNU Source-Level Debugger)であるTeradata C/C++ UDF Debuggerを使用できます。詳細については、UDFのデバッグ用C/C++コマンドラインを参照してください。
- 外部ストアド プロシージャで特定のオペレーティング システムのリソースにアクセスする必要がある場合は、CREATE AUTHORIZATIONまたはREPLACE AUTHORIZATIONを使用してネイティブ オペレーティング システム ユーザーを識別するコンテキストを作成し、このユーザーの許可の下で個別のプロセスとして実行することによって、外部ストアド プロシージャで入出力を実行できるようにします。
- 外部ストアド プロシージャに関する特定の情報を提供するオプションを持つCREATE PROCEDUREまたはREPLACE PROCEDUREを使用します。
オプション 説明 - NO SQL (デフォルト)
- CONTAINS SQL
- READS SQL DATA
- MODIFIES SQL DATA
外部ストアド プロシージャがSQL文を実行できるかどうか、およびこれらの文がデータベースでSQLデータを読み込んだり変更できるかどうかを示します。 - LANGUAGE C
- LANGUAGE CPP
外部ストアド プロシージャのソース コード言語を識別します。 - PARAMETER STYLE SQL (デフォルト)
- PARAMETER STYLE TD_GENERAL
外部ストアド プロシージャがNULLのIN引数またはINOUT引数を受け入れるかどうか、またはNULLのIN引数またはINOUT引数を戻すかどうかを示します。 DYNAMIC RESULT SETS (オプション) 外部ストアド プロシージャが戻す結果セットの数を指定します。 EXTERNAL NAME ソース コードの場所を示し、Teradata CLIパッケージ名を指定します。 EXTERNAL SECURITY (オプション) 外部ストアド プロシージャの実行を、前の手順でCREATE AUTHORIZATIONまたはREPLACE AUTHORIZATION文によって作成されたコンテキストと関連付けます。 推奨事項:一般に、SYSLIBやSYSUDTLIBなどのTeradataシステム データベースでは、外部ストアド プロシージャを作成しません。詳細は、C/C++外部ストアド プロシージャのインストールを参照してください。
外部ストアド プロシージャはコンパイルされ、外部ストアド プロシージャの属するデータベースに関連する、CLI固有の外部ストアド プロシージャのダイナミック リンク ライブラリ(DLLまたはSO)とリンクされて、システム内のTeradata Databaseのすべてのノードに配布されます。
- 正しく動作することが確認できるまで、Teradata Databaseで、外部ストアド プロシージャをテストします。
- GRANTを使用して、その外部ストアド プロシージャの使用を許可されているユーザーに権限を付与します。