XML値の戻りデータ型ごとに、エンコーディングとエンコーディング宣言がどうなるかを、以下のテーブルに示します。
XML値の戻り型 | エンコーディング | エンコーディング宣言 |
---|---|---|
XML型(レコード モード/標識モード) | 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文書のエンコーディング宣言を上書きするように指示することができます。