使用上の注意 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/rin1593638965306.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

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引数に入れて渡す値が必ずデータ型の長さと一致するようにするには、sqltypes_td.hヘッダー ファイルで定義されている次のマクロを使用します。

マクロ 説明
SIZEOF_DATE
SIZEOF_ANSI_Time
SIZEOF_ANSI_Time_WZone
SIZEOF_TimeStamp
SIZEOF_TimeStamp_WZone
指定された日付/時刻型のバイト単位の長さを戻します。