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に関する情報を参照してください。