FNC_SetVarCharLength - Teradata Database - Teradata Vantage NewSQL Engine

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

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/uhh1512082756414.ditamap
dita:ditavalPath
ja-JP/uhh1512082756414.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

目的

データ型がVARCHARの、外部ストアド プロシージャの出力パラメータの長さ、またはUDFやUDMの結果の長さをバイト単位で設定します。

構文

void
FNC_SetVarCharLength(void *outputString,
                     int   outputStringLength);
void *outputString
データ型がVARCHARの、外部ストアド プロシージャの出力パラメータ、またはUDFやUDMの結果へのポインタです。
int outputStringLength
outputStringの参照先の文字列の長さです。

使用上の注意

通常、Teradata Databaseでは、外部ルーチンの出力パラメータや結果の長さを判断するために、strlenを使用します。出力文字列にNULLが含まれている場合には、FNC_SetVarCharLengthを使用して、明示的に出力文字列の長さを設定してください。FNC_SetVarCharLengthを呼び出すと、Teradata Databaseは外部ルーチンの出力パラメータや結果の長さを取得するために、strlenを使用しません。

outputString引数の参照先のデータがVARCHARでない場合や、outputStringLengthが不正な長さの場合には、未定義のエラーが発生します。

FNC_SetVarCharLengthの使用例

#define SQL_TEXT Latin_Text
#include "sqltypes_td.h"

void dstrrev13(VARCHAR_LATIN *input,
               int            inplen,
               VARCHAR_LATIN *result)
{
   int i;
   for (i=0; i< inplen; i++)
      result[inplen-i-1] = input[i];
}

void strrevdecomp_varchar(VARBYTE       *InputValue,
                          VARCHAR_LATIN *ResultValue,
                          char           sqlstate[6])
{
   dstrrev13(InputValue->bytes, InputValue->length, ResultValue);
   FNC_SetVarCharLength(ResultValue,InputValue->length);
}