次の関数定義について考えてみましょう。
CREATE FUNCTION ascii (string_expr TD_ANYTYPE) RETURNS TD_ANYTYPE LANGUAGE C NO SQL SPECIFIC ascii EXTERNAL NAME 'CS!ascii!UDFs/ascii.c' PARAMETER STYLE SQL;
この関数は、入力した文字列に含まれる最初の文字のASCII数値を返します。この関数では、次のデータ型の入力文字列を受け入れます。
- CHARACTER
- VARCHAR
- CLOB
- CHARACTER、VARCHARまたはCLOB属性を持つUDT
- CHARACTERまたはVARCHARのエレメント タイプを持つARRAY
この関数は、入力文字列に関連付けられた文字セットを受け入れます。文字セットを明示的に指定していない場合は、デフォルトの文字セットが使用されます。
この関数でサポートされる戻り値の型は、BYTEINT、SMALLINT、またはINTEGERです。必要な戻り値の型をこの関数に指定するには、関数の呼び出し時にRETURNSdata typeまたはRETURNS STYLEcolumn expressionの句を使用します。
この関数を呼び出すクエリーの例を以下に示します。
SELECT (ascii('hello') RETURNS INTEGER);
この問合わせが返す出力は、次のとおりです。
ascii('hello') -------------- 104
この関数の詳細と、対応するCコードの例は、<Teradata Vantage™ - SQL外部ルーチン プログラミング、B035-1147>を参照してください。