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を使用してSQLを実行するCまたはC++外部ストアド プロシージャの開発、コンパイル、インストール、および呼び出しの手順の概要を示します。

  1. 外部ストアド プロシージャ用のCまたはC++コードを作成し、テストとデバッグを行ないます。

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

  2. 外部ストアド プロシージャで特定のオペレーティング システムのリソースにアクセスする必要がある場合は、CREATE AUTHORIZATIONまたはREPLACE AUTHORIZATIONを使用してネイティブ オペレーティング システム ユーザーを識別するコンテキストを作成し、このユーザーの許可の下で個別のプロセスとして実行することによって、外部ストアド プロシージャで入出力を実行できるようにします。
  3. 外部ストアド プロシージャに関する特定の情報を提供するオプションを持つ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のすべてのノードに配布されます。

  4. 正しく動作することが確認できるまで、Teradata Databaseで、外部ストアド プロシージャをテストします。
  5. GRANTを使用して、その外部ストアド プロシージャの使用を許可されているユーザーに権限を付与します。