XMLSERIALIZE スカラー関数
XMLSERIALIZE 関数は、XML-expression 引数から生成された、指定されたデータ・タイプのシリアライズされた XML 値を戻します。
スキーマは SYSIBM です。 関数名を修飾名で指定することはできません。
- CONTENT
- 任意の XML 値を指定でき、シリアライゼーションの結果はこの入力値に基づくことを指定します。 XML 式
- データ・タイプ XML の値を戻す式を指定します。 XML シーケンス値に、属性ノードである項目を含めることはできません (SQLSTATE 2200W)。 これはシリアライゼーション・プロセスへの入力です。
- AS データ・タイプ
- 結果タイプを指定します。 指定された結果のデータ・タイプの暗黙のまたは明示的な長さ属性は、シリアライズされた出力を収める十分な大きさがなければなりません (SQLSTATE 22001)。
- VERSION '1.0'
- シリアライズされた値の XML バージョンを指定します。 サポートされている唯一のバージョンは '1.0' であり、これはストリング定数として指定する必要があります (SQLSTATE 42815)。
- EXCLUDING XMLDECLARATION または INCLUDING XMLDECLARATION
- XML 宣言を結果に含めるかどうかを指定します。 デフォルトは EXCLUDING XMLDECLARATION です。
- EXCLUDING XMLDECLARATION
- XML 宣言を結果に含めないように指定します。
- INCLUDING XMLDECLARATION
- XML 宣言を結果に含めるように指定します。 XML 宣言は、ストリング '< ?xml version="1.0 "encoding ="UTF-8" ?>' です。
- AS データ・タイプ
- 結果のデータ・タイプを指定します。 指定された結果のデータ・タイプの暗黙的または明示的な長さ属性には、変換された出力を収める十分な大きさがなければなりません (SQLSTATE 22001)。
xml-document 引数または xsl-stylesheet 引数のいずれかがヌルの場合、結果はヌルになります。
上記文書のいずれかを CHAR、VARCHAR、または CLOB 列に格納する際にコード・ページ変換が発生することがあります。 その場合、結果として文字が失われることがあります。
結果は、ユーザーが指定したデータ・タイプになります。 XML シーケンスは効率的に変換され、結果の XML ノードをシリアライズする前に XMLDOCUMENT を XML-expression に適用することで、単一の文書ノードを持つようになります。 XML-expression の結果が NULL になる可能性がある場合、結果も NULL になる可能性があります。 XML-expression の結果が NULL であれば、結果も NULL 値になります。
注
- シリアライズされた結果のエンコード: シリアライズされた結果は、UTF-8 でエンコードされます。 XMLSERIALIZE が文字データ・タイプで使用され、INCLUDING XMLDECLARATION 節が指定されている場合、シリアライズされた XML を含む結果の文字ストリングは、文字ストリングのコード・ページと一致しない XML エンコード宣言を持つ場合があります。 UTF-8 エンコードを使用するシリアライゼーションに続き、サーバーからクライアントに戻される文字ストリングは、クライアントのコード・ページに変換されますが、そのコード・ページは UTF-8 とは異なる場合があります。
したがって、アプリケーションは文字ストリング・タイプを戻す XMLSERIALIZE INCLUDING XMLDECLARATION の直接使用を避け、XML 値を取り出して直接ホスト変数に入れ、外部コード・ページと XML 宣言のエンコードとの間の一致を維持する必要があります。 XMLSERIALIZE をこの状況で使用する必要がある場合、BLOB タイプを指定してコード・ページの変換を避ける必要があります。
- 代替構文: XML2CLOB(XML-expression) を XMLSERIALIZE(XML-expression AS CLOB(2G)) の代わりに指定することができます。 これは、以前の Db2® リリースとの互換性のためにのみサポートされています。