UDFの結果として定義されるDISTINCT型UDTの値を設定するには、以下のようにします。
| DISTINCT型 | 結果 |
|---|---|
| LOBを表わすものでない場合 |
|
| LOBを表わす場合 |
|
FNC_SetDistinctValueおよびFNC_GetDistinctResultLobの詳細は、Cライブラリ関数を参照してください。
FLOATを表わすDISTINCT型UDTの値を設定するコードの一部を以下に示します。
void meters_t_toFeet( UDT_HANDLE *metersUdt,
UDT_HANDLE *resultFeetUdt,
char sqlstate[6])
{
FLOAT value;
int length;
/* Get the value of metersUdt. */
FNC_GetDistinctValue(*metersUdt, &value, SIZEOF_FLOAT, &length);
/* Convert meters to feet and set the result value */
value *= 3.28;
FNC_SetDistinctValue(*resultFeetUdt, &value, SIZEOF_FLOAT);
...
}