17.00 - 17.05 - ヘッダー ファイル - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1147-170K-JPN
Language
日本語 (日本)

Teradataには、ソース コード ファイルにインクルードするためのsqltypes_td.hヘッダー ファイルが用意されています。このヘッダー ファイルは、UDMの入力引数および結果として使用できるすべてのデータベース データ型と同等のCのデータ型を定義するものです。各SQLデータ型はそれぞれ、sqltypes_td.h内の1つのCデータ型に対応します。

場所

このヘッダー ファイルは、Teradataソフトウェア ディストリビューションのetcディレクトリに入っています。

/usr/tdbms/etc

etcディレクトリのパスを検証するには、コマンド ラインに以下のように入力します。

pdepath -e

SQL_TEXTの定義

sqltypes_td.hヘッダー ファイルをインクルードする前に、SQL_TEXT定数を定義する必要があります。使用する値は、UDMを作成するためにCREATE METHOD文を使用する時のセッションのサーバー文字セットの値でなければなりません。

CREATE METHOD文使用時のサーバー文字セット CまたはC++関数で設定するべきSQL_TEXTの値
KANJI Kanji1_Text
KANJISJIS Kanjisjis_Text
LATIN Latin_Text
UNICODE Unicode_Text

SQL_TEXTは、パラメータ スタイルSQLをUDMで使用する場合に、特定のUDM引数に対して使用されます。パラメータ スタイルについて詳しくは、UDMのパラメータ リストを参照してください。

Teradata Databaseは、だれがUDMを呼び出しても、またセッションの現在のサーバー文字セットが何であっても、UDMがSQL_TEXT入力引数を期待通りのテキストに変換したり、テキストをSQL_TEXT出力引数に変換したりするために、UDM作成時の文字セットを記憶しています。

Teradataの国際化計画に従って、KANJI1のサポートはサポート外になりました。このサポートは、近い将来に廃止される予定です。KANJI1はデフォルトの文字セットとして許可されません。システムはデフォルトのKANJI1文字セットをUNICODE文字セットに変更します。 KANJI1の新規オブジェクトの作成は、高度に制限されています。 KANJI1を使用する問合わせやアプリケーションの多くは、従来通り動作しますが、KANJI1を使用するサイトはできるだけ早く別の文字セットに変換する必要があります。

例: SQL_TEXTの定義とsqltypes_td.hのインクルード

次の例は、UDMを定義するファイルで、SQL_TEXTを定義し、sqltypes_td.hヘッダー ファイルをインクルードする方法を示すものです。

#define  SQL_TEXT Latin_Text
#include "sqltypes_td.h"

sqltypes_td.hヘッダー ファイルのインクルードは、次のようにも指定できます。

#include <sqltypes_td.h>

不等号括弧(< >)を使うか、二重引用符(" ")を使用するかは、Cプリプロセッサがsqltypes_td.hヘッダー ファイルを検索するパスに関係します。

SQLデータ型

すべてのSQLデータ型は、UDMの入力引数および結果に使用するCデータ型に対応します。

詳細については、<SQLデータ型のマッピング>を参照してください。

厳密な定義については、「sqltypes_td.hヘッダー ファイル」を参照してください。