17.00 - 17.05 - SELECT UDFのパラメータ リスト - 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
日本語 (日本)
SELECT UDFによって、SELECT操作に対するセキュリティ ポリシーを実装します。SELECT UDFのパラメータ リストは、次の内容で構成されます。
  • 入力パラメータ。このパラメータは、引数として現行セッションのセキュリティ ラベルを受け取ります。
  • 入力パラメータ。このパラメータは、引数として対象行のセキュリティ ラベルを受け取ります。
  • 結果パラメータ。SELECTリクエストがセキュリティ ポリシーを満たしているときには「T」を返します。セキュリティ ポリシーに違反しているときには「F」を返します。有効な戻り値についての詳細は、SELECT UDFまたはDELETE UDFの戻り値を参照してください。
  • 入力パラメータ用と結果パラメータ用の識別子パラメータ。これらのパラメータは、制約オブジェクトがNULLを許容する場合にのみ必要になります。

ここでは、SELECT UDFの宣言方法の例を示します。

/*****  C source file name: readlevel.c  *****/
   
#define SQL_TEXT Latin_Text
#include <sqltypes_td.h>
   
void ReadLevel( short int  *sess_level,
                short int  *curr_row,
                char       *result )
{
     ...
}

対応するCREATE FUNCTION文は、以下のようになります。

CREATE FUNCTION SYSLIB.ReadLevel( current_session SMALLINT,
                                  input_row       SMALLINT )
        RETURNS CHAR
        LANGUAGE C
        NO SQL
        PARAMETER STYLE TD_GENERAL
        EXTERNAL NAME 'CS!readlevel!cctests/readlevel.c';
条件
  • current_sessionは、セッションに現在設定されているセキュリティ ラベルを特定する、システム定義のパラメータ名です。
  • input_rowは、システム定義のパラメータ名です。このパラメータで対象行のセキュリティ ラベルを特定します。
  • 制約オブジェクトがNULLを許容する場合、PARAMETER STYLEはSQLになります。それ以外の場合、PARAMETER STYLEはTD_GENERALになります。