My Oracle Support Banner

JDBC から11.2.0.4 以降のデータベースに対して、発音区別符号のついた文字を含む XML データを SELECT すると NullPointerException が発生する (Doc ID 2139677.1)

Last updated on JULY 23, 2019

適用範囲:

JDBC - バージョン 11.2.0.2.0 以降
この文書の内容はすべてのプラットフォームに適用されます。

現象

JDBC Thin Driver から、発音区別符号のある文字を含む XMLTYPE カラムのデータへのクエリに失敗します。
この問題は、ターゲット・データベースを 11.2.0.3 から 11.2.0.4 にアップグレードするまでは発生しません。
また、JDBC OCI Driver や SQL*Plus を使用している場合には再現しません。

この問題は、使用している JDBC Driver のバージョンに依存して次のいずれかのエラーとなります。

* JDBC Driver 11.2.0.3 では、NullPointerException が発生します。

* JDBC Driver 11.2.0.4、12.1.0.1 および 12.1.0.2 では「java.sql.SQLException: 無効なキャラクタが見つかりました」エラーになります。

java.sql.SQLException: 無効なキャラクタが見つかりました -
at oracle.sql.CharacterSet.failUTFConversion(CharacterSet.java:2940)
at oracle.sql.CharacterSetAL32UTF8.toString(CharacterSetAL32UTF8.java:184)
at oracle.xdb.XMLType.processString(XMLType.java:3255)
at oracle.xdb.XMLType.processThin(XMLType.java:3380)
at oracle.xdb.XMLType.(XMLType.java:1511)
at oracle.xdb.XMLType.createXML(XMLType.java:957)
at oracle.xdb.XMLType.createXML(XMLType.java:931)
at oracle.jdbc.driver.NamedTypeAccessor$XMLFactory.createXML(NamedTypeAccessor.java:118)
at oracle.jdbc.driver.NamedTypeAccessor.getOracleObject(NamedTypeAccessor.java:249)
at oracle.jdbc.driver.NamedTypeAccessor.getObject(NamedTypeAccessor.java:136)
at oracle.jdbc.driver.NamedTypeAccessor.getObject(NamedTypeAccessor.java:110)
at oracle.jdbc.driver.GeneratedStatement.getObject(GeneratedStatement.java:259)
at oracle.jdbc.driver.GeneratedScrollableResultSet.getObject(GeneratedScrollableResultSet.java:621)

問題は、Oracle JDBC Driver 11.2.0.4(または 12c)から Database 12c への接続でも再現します。

原因

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


本書の内容
現象
原因
解決策
参照情報

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.