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! |
本書の内容
現象 |
原因 |
解決策 |
参照情報 |