値をスキップする IgnoreBuffer
ユーザー定義関数で IgnoreBuffer 構造を使用して、データ型変換で必要のない引数の処理をスキップまたは回避できます。 例えば、タイムスタンプを時、分、秒に変換したいが、マイクロ秒のコンポーネントが不要な場合は、それを無視することができる。
IgnoreBuffer の構文は次のとおりです。
union IgnoreBuffer
{
uint8 u8;
uint16 u16;
uint32 u32;
uint64 u64;
int8 s8;
int16 s16;
int32 s32;
int64 s64;
}
Netezza Performance Serverの時刻をh:m:sのみにデコードし、マイクロ秒を無視するには、次のようにIgnoreBuffer構造体を使用します:
uint8 h,m,s;
IgnoreBuffer ignore;
decodeTime(givenTime, &h, &m, &s, &ignore.u32);
もう 1 つの例として、日付値を日および月だけにデコードし、年は無視する場合、IgnoreBuffer を次のように使用することができます。
uint8 month,day;
IgnoreBuffer ignore;
decodeDate(givenDate, &month, &day, &ignore.u16);
バッファーには、いずれの時点でも意味のあるデータが含まれていない点に注目してください。