次に示すコードの抜粋部分は、FNC_GetAnyTypeParamInfo関数を呼び出して、TD_ANYTYPE引数についての情報を取得する外部ストアド プロシージャの例です。
#define SQL_TEXT Latin_Text #include <sqltypes_td.h> #include <string.h> void xspwanytypefnc(void *input1, ..., void *result, int *indc_input1, ..., int *indc_result, char sqlstate[6], SQL_TEXT extname[129], SQL_TEXT specific_name[129], SQL_TEXT error_message[257]) { anytype_param_info_t paraminfo[2]; int numunk; FNC_GetAnyTypeParamInfo(2*sizeof(anytype_param_info_t),&numunk, paraminfo); if(((paraminfo[1].datatype == CHAR_DT) || (paraminfo[1].datatype == VARCHAR_DT)) && (paraminfo[1].paramIndex == -1)&& (paraminfo[1].direction == OUT_PM)&& (paraminfo[1].charset == LATIN_CT)) { /* Process the value based upon the data type */ switch(paraminfo[0].datatype) { case BYTEINT_DT: strcpy ((char *)result,"Byteint"); break; /* Do some processing */ ... } } }
これに相当するSQLプロシージャ定義を次に示します。
CREATE PROCEDURE xspwanytypefnc(IN a TD_ANYTYPE, ..., OUT result1 TD_ANYTYPE) LANGUAGE C NO SQL PARAMETER STYLE SQL EXTERNAL NAME 'CS!xspwanytypefnc!xspwanytypefnc.c';