17.00 - 17.05 - ユーザー提供のインクルード ファイルの指定 - 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
日本語 (日本)

UDFにユーザー提供のヘッダー ファイルをインクルードする場合は、CREATE FUNCTION文のEXTERNAL句でそのヘッダー ファイルの名前とパスを指定する必要があります。

ヘッダー ファイルstypes.hをインクルードしている以下の関数について検討してみましょう。

/*****  C source file name: substr.c  *****/
   
#define SQL_TEXT Latin_Text
#include <sqltypes_td.h>
#include "stypes.h"
   
void udf_substr( VARCHAR_LATIN *inputString,
                 INTEGER       *start,
                 VARCHAR_LATIN *result,
                 char          sqlstate[6])
{
     ...
}

以下に示すのは、ユーザー提供のヘッダー ファイルの名前とパスを指定したCREATE FUNCTIONの例です。

CREATE FUNCTION udfSubStr
  (inputString VARCHAR(512),
   start       INTEGER)
RETURNS VARCHAR(512)
LANGUAGE C
NO SQL
EXTERNAL NAME 'CI!stypes!udfsrc/stypes.h!CS!substr!udfsrc/substr.c!F!udf_substr'
PARAMETER STYLE TD_GENERAL;

説明

EXTERNAL NAMEに続く文字列 指定内容
! 区切り文字。
C ヘッダー ファイルをクライアントから入手する。
I 後続の2セットの区切り文字の間の情報が、インクルード ファイル(.h)の名前と位置を識別する。
stypes ヘッダー ファイルの名前(ファイル拡張子なし)。
udfsrc/stypes.h クライアント上のヘッダー ファイルのパスと名前。
C ソースをクライアントから入手する。
S 後続の2セットの区切り文字の間の情報が、CまたはC++関数ソース ファイルの名前と位置を識別する。
substr サーバーがソースをコンパイルするために使用する名前(ファイル拡張子なし)。
udfsrc/substr.c ソース ファイルのパスと名前。
F 次の区切り文字の後の情報がCまたはC++関数名を識別する。
udf_substr CまたはC++関数名。

ライブラリのインストールの詳細については、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>の「CREATE FUNCTION」を参照してください。