SQLを実行する外部ストアド プロシージャ - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/rin1593638965306.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

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

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

    データベース用の拡張機能を含むバージョンの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)とリンクされて、システム内のデータベースのすべてのノードに配布されます。

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