JSONデータ型
FNC_GetInternalValueは、文字およびバイナリJSON値を取得します。テキストベースの値の場合、ルーチンはJSONインスタンスの文字列表現を、インスタンスの定義方法に応じてUNICODEテキストまたはLATINテキストとして返します。
FNC_GetInternalValueを呼び出す前に、外部ルーチンはreturnValueにより参照されるバッファを割り振る必要があります。FNC_GetJSONInfoまたはFNC_GetExtendedJSONInfoを呼び出して、適切なバッファ サイズを決めるか、可能な最大長の64000バイトでバッファを割り当てることができます。
JSONデータがLOBとして保存されていない場合のみ、FNC_GetInternalValueを使用します。FNC_GetJSONInfoまたはFNC_GetExtendedJSONInfoがnumLobs > 0を返す場合、FNC_GetInternalValueを使用することができます。そうでなければ、代わりにFNC_GetJSONInputLobを使用する必要があります。
DATASETデータ型
FNC_GetInternalValueを呼び出す前に、外部ルーチンはreturnValueにより参照されるバッファを割り振る必要があります。FNC_GetDatasetInfoを呼び出して、適切なバッファ サイズを決定することができます。
DATASETデータがLOBとして保存ない場合のみ、FNC_GetInternalValueを使用します。FNC_GetDatasetInfoがdataLob = 0を返す場合、FNC_GetInternalValueを使用することができます。そうでなければ、代わりにFNC_GetDatasetInputLobを使用する必要があります。
Avroインスタンスの場合、このルーチンを使用してユーザーはNULLで終端するUTF-8でエンコードされたスキーマ、その後にバイナリ コード化されたAvro値を含むバッファにアクセスできます。これは、変換形式と同じです。
CSV値を取得する場合、この値にオプションのスキーマは含まれません。
PERIOD型
Period型の場合、バッファのサイズはPeriodデータ型の要素型に応じて異なります。
PERIOD型 | 必要なバッファのサイズを決定する保持データ型 |
---|---|
PERIOD(DATE) | 2つのDATE値。 |
PERIOD(TIME) | 2つのTIME値。 |
PERIOD(TIME WITH TIME ZONE) | 2つのTIME WITH TIME ZONE値。 |
PERIOD(TIMESTAMP) | 2つのTIMESTAMP値。 |
PERIOD(TIMESTAMP WITH TIME ZONE) | 2つのTIMESTAMP WITH TIME ZONE値。 |
bufSize引数に入れて渡す値が必ずTeradata Databaseのデータ型の長さに一致するようにするには、sqltypes_td.hヘッダー ファイルに定義されている次のようなマクロを使用します。
マクロ | 説明 |
---|---|
SIZEOF_DATE SIZEOF_ANSI_Time SIZEOF_ANSI_Time_WZone SIZEOF_TimeStamp SIZEOF_TimeStamp_WZone |
指定された日付/時刻型のバイト単位の長さを戻します。 |