ODBC Driver for Teradataは、XML値からODBC文字C型(SQL_C_CHARおよびSQL_C_WCHAR)への変換と、XML値からバイナリC型(SQL_C_BINARY)への変換をサポートしています。また、その逆の変換もサポートしています。
データベースから取得したXMLデータ型の値は、完全なXML文書になることもありますが、シーケンスやアトミック値などの非整形式のテキスト エントリ(XML文書の断片を含む)になることもあります。データベースに挿入するXMLデータ型の値は、XML文書(整形式)にする必要があります。
アプリケーションで使用される非Unicodeコード ページへの変換(変換エラーが発生する可能性がある)が不要であるため、TeradataではXMLと、SQL_C_BINARYまたはSQL_C_WCHARとの変換を推奨します。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 macOSの場合はUTF32)でエンコードされた文字のシーケンスになります。このエンコーディングは、XMLテキスト内でのエンコーディング宣言は関係しません。 |
特定のXML文書では、その文書をODBCで作業する場合に推奨されるODBC C型は、そのXML文書内の宣言で特定されるXML文書のエンコーディングによって異なります。XML文書のエンコーディングに推奨されるODBC C型の一覧を以下に示します。
XML文書のエンコーディング宣言 | ODBCアプリケーションでXML文書を作業するときに推奨されるODBC C型 | ||
---|---|---|---|
Windows | Linux/Unix | Apple macOS | |
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。 |