使用JDBC驱动程序连接到AS400/DB2数据库
LogicalObserver
成员职位:4学我
在帮助
美好的一天,
我正在尝试使用Jt400 10.5.jar驱动程序连接到我的AS400/DB2数据库。
我能够成功连接(使用测试连接),但是当运行一个简单的SQL脚本(读取数据库操作符)时,我得到以下错误:
亲切的问候
我正在尝试使用Jt400 10.5.jar驱动程序连接到我的AS400/DB2数据库。
我能够成功连接(使用测试连接),但是当运行一个简单的SQL脚本(读取数据库操作符)时,我得到以下错误:
- 例外:java.lang.NullPointerException
- 信息:零
- 堆栈跟踪:
- com.rapidminer.extension.jdbc.operator.io.DatabaseDataReader.createExampleTable (DatabaseDataReader.java: 259)
- com.rapidminer.extension.jdbc.operator.io.DatabaseDataReader.createExampleSet (DatabaseDataReader.java: 144)
- com.rapidminer.operator.io.AbstractExampleSource.read (AbstractExampleSource.java: 53)
- com.rapidminer.extension.jdbc.operator.io.DatabaseDataReader.read (DatabaseDataReader.java: 101)
- com.rapidminer.extension.jdbc.operator.io.DatabaseDataReader.read (DatabaseDataReader.java: 82)
- com.rapidminer.operator.io.AbstractReader.doWork (AbstractReader.java: 272)
- com.rapidminer.operator.Operator.execute (Operator.java: 1023)
- com.rapidminer.operator.execution.SimpleUnitExecutor.execute (SimpleUnitExecutor.java: 77)
- com.rapidminer.operator.ExecutionUnit 2.美元运行(ExecutionUnit.java: 805)
- com.rapidminer.operator.ExecutionUnit 2.美元运行(ExecutionUnit.java: 800)
- java.security.AccessController。doPrivileged(本地方法)
- com.rapidminer.operator.ExecutionUnit.execute (ExecutionUnit.java: 800)
- com.rapidminer.operator.OperatorChain.doWork (OperatorChain.java: 423)
- com.rapidminer.operator.Operator.execute (Operator.java: 1023)
- com.rapidminer.Process.executeRoot (Process.java: 1464)
- com.rapidminer.Process.lambda executeRootInPool 5美元(Process.java: 1443)
- com.rapidminer.studio.concurrency.internal.AbstractConcurrencyContext AdaptedCallable.exec美元(AbstractConcurrencyContext.java: 362)
- java.util.concurrent.ForkJoinTask.doExec (ForkJoinTask.java: 289)
- java.util.concurrent.ForkJoinPool WorkQueue.runTask美元(ForkJoinPool.java: 1056)
- java.util.concurrent.ForkJoinPool.runWorker (ForkJoinPool.java: 1692)
- java.util.concurrent.ForkJoinWorkerThread.run (ForkJoinWorkerThread.java: 175)
亲切的问候
0
最佳答案
-
jwpfau 员工,成员职位:189RM工程你好,
你能试试这个吗?
https://www.ibm.com/support/pages/time-date-and-timestamp-fields-may-return-null-value-and-sql0183
在“编辑连接”窗口中添加
日期格式=iso;时间格式=iso;
到数据库名称的末尾。
问候,
乔纳斯1
答案
您可以尝试使用相同设置的另一个基于Java的SQL客户端(SQuirrel SQL, SQL Workbench/J)吗?
问候,
Balazs
失败的代码首先询问jdbc驱动程序最后日期值是否为空,如果不是,则读取该值。
您可以尝试禁用并行执行,以排除jdbc驱动程序的一些并发性问题吗?
要禁用并行执行,请通过父操作符单击“显示高级参数”并取消选择“启用并行执行”。
否则,您可以使用DB2 VARCHAR_FORMAT函数将日期/时间/时间戳列转换为字符串,直到有可用的补丁。
问候,
乔纳斯
我没有看到在我使用的操作符上启用并行执行(请参见下文)。此外,我无法在Read_Database sql脚本构建器中看到这些列。
我能够使用我在Rapidminer中添加的相同驱动程序从这两个客户端成功连接到数据库,如下所示:
com.ibm.as400.access。AS400JDBCDriver (jt400-10.5.jar)