使用JDBC驱动程序连接到AS400/DB2数据库

LogicalObserverLogicalObserver 成员职位:4学我
美好的一天,

我正在尝试使用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)
非常感谢任何协助。

亲切的问候

最佳答案

答案

  • BalazsBaranyBalazsBarany 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家职位:909独角兽
    你好,

    您可以尝试使用相同设置的另一个基于Java的SQL客户端(SQuirrel SQL, SQL Workbench/J)吗?

    问候,
    Balazs
    jwpfau LogicalObserver
  • jwpfaujwpfau 员工,成员职位:189RM工程
    2021年4月编辑
    你好,

    失败的代码首先询问jdbc驱动程序最后日期值是否为空,如果不是,则读取该值。

    您可以尝试禁用并行执行,以排除jdbc驱动程序的一些并发性问题吗?
    要禁用并行执行,请通过父操作符单击“显示高级参数”并取消选择“启用并行执行”。

    否则,您可以使用DB2 VARCHAR_FORMAT函数将日期/时间/时间戳列转换为字符串,直到有可用的补丁。

    问候,
    乔纳斯
    LogicalObserver
  • LogicalObserverLogicalObserver 成员职位:4学我
    @jwpfau非常感谢你的反馈。

    我没有看到在我使用的操作符上启用并行执行(请参见下文)。此外,我无法在Read_Database sql脚本构建器中看到这些列。




  • LogicalObserverLogicalObserver 成员职位:4学我
    BalazsBarany我尝试使用SQLSquirrel和DBeaver的连接细节。

    我能够使用我在Rapidminer中添加的相同驱动程序从这两个客户端成功连接到数据库,如下所示:

    com.ibm.as400.access。AS400JDBCDriver (jt400-10.5.jar)
  • LogicalObserverLogicalObserver 成员职位:4学我
    @jwpfau效果很好!!非常感谢!!
登录注册置评。