XMLデータ型の値と変換 - ODBC Driver for Teradata

ODBC Driver for Teradata® ユーザー ガイド

Product
ODBC Driver for Teradata
Release Number
16.20
Published
2018年10月
Language
日本語
Last Update
2019-02-12
dita:mapPath
ja-JP/fxv1527114222338.ditamap
dita:ditavalPath
ja-JP/fxv1527114222338.ditaval
dita:id
B035-2526
Product Category
Teradata Tools and Utilities

ODBCドライバは、XML値からODBC文字C型(SQL_C_CHARおよびSQL_C_WCHAR)への変換と、XML値からバイナリC型(SQL_C_BINARY)への変換をサポートしています。また、その逆の変換もサポートしています。

データベースから取得したXMLデータ型の値は、完全なXML文書になることもありますが、シーケンスやアトミック値などの非整形式のテキスト エントリ(XML文書の断片を含む)になることもあります。データベースに挿入するXMLデータ型の値は、XML文書(整形式)にする必要があります。

XMLに推奨される変換方法は、SQL_C_BINARYまたはSQL_C_WCHARとの間で変換することです。このようにすると、アプリケーションで使用されているUnicode以外のコード ページへの変換を排除し、変換エラーをなくすことができます。SQL_TD_XMLのデフォルトのODBC C型はSQL_C_BINARYです。ODBC C型として表されるSQL_TD_XML値の一覧を以下に示します。

XMLの表現形式 説明
SQL_C_BINARY この値は、XMLテキスト内でどのようなエンコーディングが宣言されていたとしても、UTF8でエンコードされた文字のシーケンスになります。
SQL_C_CHAR この値は、XMLテキスト内でどのようなエンコーディングが宣言されていたとしても、アプリケーション コード ページでエンコードされた文字のシーケンスになります。
SQL_C_WCHAR この値は、アプリケーションで有効なUnicodeエンコーディング(Linux/Unixの場合はUTF8またはUTF16、Windowsの場合はUTF16、Apple OS Xの場合はUTF32)でエンコードされた文字のシーケンスになります。このエンコーディングは、XMLテキスト内でのエンコーディング宣言は関係しません。

特定のXML文書について、その文書をODBCで作業する場合に推奨されるODBC C型は、そのXML文書内の宣言で特定されるXML文書のエンコーディングによって異なります。XML文書のエンコーディングに推奨されるODBC C型の一覧を以下に示します。

XML文書のエンコーディング宣言 ODBCアプリケーションでXML文書を作業するときに推奨されるODBC C型
Windows Linux/Unix Apple OS X
UTF8 SQL_C_BINARYまたはSQL_C_WCHAR。SQL_C_WCHARを使用すると、エンコーディングはUTF16になります。 SQL_C_BINARYまたはSQL_C_WCHAR。 SQL_C_BINARYまたはSQL_C_WCHAR
UTF16 SQL_C_WCHAR UTF16のUnicodeエンコーディングを使用したSQL_C_WCHAR。詳細は、Unicode文字型を参照してください。 SQL_C_WCHAR
その他 文書のエンコーディングと一致するアプリケーション コード ページを使用したSQL_C_CHAR。 XML文書のエンコーディングと一致するアプリケーション コード ページを使用したSQL_C_CHAR。 文書のエンコーディングと一致するロケールLC_TYPE設定を使用したSAL_C_CHAR。