Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 错误代码=-4220和SQLSTATE=null_Java_Jdbc_Exception Handling_Db2 - Fatal编程技术网

Java 错误代码=-4220和SQLSTATE=null

Java 错误代码=-4220和SQLSTATE=null,java,jdbc,exception-handling,db2,Java,Jdbc,Exception Handling,Db2,我正在使用DB2Version10.5并将值插入DB2JSON,创建了一个简单的独立java程序来检索表(集合)中的所有值。当我运行查询时,我得到以下错误 Exception in thread "main" java.lang.RuntimeException: com.ibm.db2.jcc.am.SqlException: [jcc][t4][1065][12306][3.69.66] Caught java.io.CharConversionException. See attache

我正在使用DB2Version10.5并将值插入DB2JSON,创建了一个简单的独立java程序来检索表(集合)中的所有值。当我运行查询时,我得到以下错误

Exception in thread "main" java.lang.RuntimeException: com.ibm.db2.jcc.am.SqlException: [jcc][t4][1065][12306][3.69.66] Caught java.io.CharConversionException.  See attached Throwable for details. ERRORCODE=-4220, SQLSTATE=null
      at com.ibm.nosql.json.api.DBObjectRowHandler.handle(DBObjectRowHandler.java:38)
      at com.ibm.nosql.json.api.DBObjectRowHandler.handle(DBObjectRowHandler.java:14)
      at com.ibm.nosql.json.api.BaseResultIterator.next(BaseResultIterator.java:119)
      at com.ibm.nosql.json.api.DBCursor.fetchResultsEagerly(DBCursor.java:801)
      at com.ibm.nosql.json.api.DBCursor.find(DBCursor.java:895)
      at com.ibm.nosql.json.api.DBCursor.hasNext(DBCursor.java:278)
      at com.ws.Demo.TestingDemo.main(TestingDemo.java:47)
Caused by: com.ibm.db2.jcc.am.SqlException: [jcc][t4][1065][12306][3.69.66] Caught java.io.CharConversionException.  See attached Throwable for details. ERRORCODE=-4220, SQLSTATE=null
      at com.ibm.db2.jcc.am.gd.a(gd.java:733)
      at com.ibm.db2.jcc.am.gd.a(gd.java:66)
      at com.ibm.db2.jcc.am.gd.a(gd.java:120)
      at com.ibm.db2.jcc.am.kc.a(kc.java:2868)
      at com.ibm.db2.jcc.am.kc.p(kc.java:525)
      at com.ibm.db2.jcc.am.kc.Z(kc.java:2747)
      at com.ibm.db2.jcc.am.ResultSet.getObjectX(ResultSet.java:1438)
      at com.ibm.db2.jcc.am.ResultSet.getObject(ResultSet.java:1413)
      at com.ibm.nosql.json.api.DBResultSet.getObject(DBResultSet.java:255)
      at com.ibm.nosql.json.api.DBData.getObjectX(DBData.java:66)
      at com.ibm.nosql.json.api.DBObjectRowHandler.getObjectID(DBObjectRowHandler.java:58)
      at com.ibm.nosql.json.api.DBObjectRowHandler.handle(DBObjectRowHandler.java:28)
      ... 6 more
Caused by: java.nio.charset.MalformedInputException: Input length = 290
      at com.ibm.db2.jcc.am.r.a(r.java:19)
      at com.ibm.db2.jcc.am.kc.a(kc.java:2864)
      ... 14 more
Caused by: sun.io.MalformedInputException
      at sun.io.ByteToCharUTF8.convert(ByteToCharUTF8.java:292)
      at com.ibm.db2.jcc.am.r.a(r.java:16)
      ... 15 more

我也读了几篇文章,其中建议使用db2.jcc.charsetDecoderEncoder=3,但我不知道在哪里使用它,还有几篇文章建议使用最新版本的db2jcc.jar,我正在使用DB210.5中sqllib文件夹下的jar。如果有人告诉我如何修复此问题,您可以在Java代码中使用system属性设置字符集解码器编码器

例如:

System.setProperty("db2.jcc.charsetDecoderEncoder", "3");

在tomcat设置中添加以下环境变量(Java VM参数)

-Ddb2.jcc.charsetDecoderEncoder=3


这起作用了。

我尝试了DB=NoSQLClient.getDB(databaseUrl,user,password,ns);DBCollection col=db.getCollection(“*******”);setProperty(“db2.jcc.charsetdecoderecoder”,“3”);BasicDBObject db1=新的BasicDBObject();DBCursor=col.find();但仍然得到同样的错误。我做得对吗?@raghulc
System.setProperty(“db2.jcc.charsetDecoderEncoder”,“3”)
应该是类的第一行,但您在获得连接后正在设置属性。哦,糟糕,让我试试看是的。现在我没有得到错误。只是因为特殊字符可以出现在我的数据库中,我需要使用你提到的代码?