XML data type The XML data type is used for Extensible Markup Language (XML) documents. XML data type

XMLデータ型は以下のように使います。

  • SQL/XMLに定義された、整形されたXML(DOCUMENT(ANY))の値を記録する。
  • 一時的に整形されたXML(DOCUMENT(ANY))の値ではない、XML(SEQUENCE)の値を扱う。

XMLデータの値を、取得・更新・問合せ等、何らかの方法で操作するアプリケーションでは、JAXP構文解析器とXalanのクラスをクラスパスに持たなければなりません。もし、構文解析器・Xalanの何れかが見つからなければ、はエラーを発行します。

ではJDBCにて、SQL/XMLを扱う機能が実装されていないので、XMLの値を直接バインドしたり、JDBCの結果セットから直接XMLの値を取得することは不可能です。 その代わりに、XMLPARSEやXMLSERIALIZE等の適切なXMLの演算子を明示的にSQLに書いて、XMLの情報をJavaの文字列や文字のストリームとして、バインドしたり取得する必要があります。

構文XML
対応するコンパイル時のJavaの型

無し

XMLの値に対応するJavaの型のjava.sql.SQLXMLは存在します。しかし、java.sql.SQLXML型はにてサポートされていません。

JDBC メタデータ型 (java.sql.Types)

無し

XMLの値に対応するメタデータ型のSQLXMLは存在します。しかし、SQLXMLはにてサポートされていません。

のデータベースからXMLの値を取得するときには、問合せのSQLにてXMLSERIALIZE演算子を使ってください。 例を挙げます。SELECT XMLSERIALIZE (xcol as CLOB) FROM myXmlTable こうすることで、直列化した型に対応するgetXXXメソッドを使って、XMLの値を、取得することができます。この例ではCLOB型となります。

のデータベースにJDBCを使ってXMLの値を記録するときは、SQL文にてXMLPARSE演算子を使ってください。 例を挙げます。INSERT INTO myXmlTable(xcol) VALUES XMLPARSE( DOCUMENT CAST (? AS CLOB) PRESERVE WHITESPACE) そして、文字列の型と互換性のあるsetXXXメソッドを使ってください。 この例ではPreparedStatement.setStringまたはPreparedStatement.setCharacterStreamメソッドを使って、演算子に値を与えます。