XML値エンコーディングとエンコーディング宣言 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - XMLデータ型

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/amr1556233250442.ditamap
dita:ditavalPath
ja-JP/amr1556233250442.ditaval
dita:id
B035-1140
Product Category
Software
Teradata Vantage

XML値の戻りデータ型ごとに、エンコーディングとエンコーディング宣言がどうなるかを、以下のテーブルに示します。

XML値の戻り型 エンコーディング エンコーディング宣言
XML型(レコード モード/標識モード) UTF-8
  • 文書全体を取得する場合、かつオリジナルのエンコーディング宣言が含まれていた場合、エンコーディング宣言は保持されます。
  • オリジナルのエンコーディング宣言がなかった場合、何も追加されません(標準規格では、エンコーディング宣言がない場合、パーサーはUTF-8と解釈します)。
CLOBまたはVARCHAR(フィールド モードの場合、またはターゲット型にCLOBまたはVARCHARを指定してXMLSERIALIZEが呼び出された場合) 取得する文書のエンコーディングは、使用されているセッション文字セットに一致したものになります。
  • 文書全体を取得する場合、かつオリジナルのエンコーディング宣言が含まれていた場合、エンコーディング宣言は保持されます。
  • オリジナルのエンコーディング宣言がなかった場合、何も追加されません。
BLOBまたはVARBYTE(ターゲット型にBLOBまたはVARBYTEを指定してXMLSERIALIZEが呼び出された場合) XML値のエンコーディングは、XMLSERIALIZE関数呼び出しのENCODING句でユーザーが指定したものになります。エンコーディングが指定されていない場合、UTF-8になります。 エンコーディング宣言は、ENCODING句でユーザーが指定したもの(または指定なし)になります。

XML値がXML、CLOB、またはVARCHAR値として返される場合、XML値の実際のエンコーディングとそのエンコーディング宣言との間に不一致が発生する可能性があります。使用されているセッション文字セットが分かっている場合などには、外部的に得られる知識に基づいて、パーサーで提供されているAPIにより、パーサーに対してXML文書のエンコーディング宣言を上書きするように指示することができます。