无法通过 Pentaho 连接到 oracle。找不到“oracle.jdbc.driver.OracleDriver”

Posted

技术标签:

【中文标题】无法通过 Pentaho 连接到 oracle。找不到“oracle.jdbc.driver.OracleDriver”【英文标题】:Unable to connect to oracle via Pentaho. 'oracle.jdbc.driver.OracleDriver' could not be found 【发布时间】:2013-12-22 03:00:18 【问题描述】:

您好,我刚刚安装了 Pentaho Data Integration v. 5.01,我正在尝试连接到数据库。但是,由于出现错误(粘贴在下面),我无法测试连接。

我在系统上也安装了 JDK 1.7,但是我似乎无法在任何地方找到 ojdbc14.jar。

我下载了它并将它粘贴到 pentaho 的 \lib 文件夹中,但我仍然遇到同样的错误。

有解决这个问题的办法吗?

Error connecting to database [test] : org.pentaho.di.core.exception.KettleDatabaseException: 
Error occured while trying to connect to the database

Driver class 'oracle.jdbc.driver.OracleDriver' could not be found, make sure the 'Oracle' driver (jar file) is installed.
oracle.jdbc.driver.OracleDriver


org.pentaho.di.core.exception.KettleDatabaseException: 
Error occured while trying to connect to the database

Driver class 'oracle.jdbc.driver.OracleDriver' could not be found, make sure the 'Oracle' driver (jar file) is installed.
oracle.jdbc.driver.OracleDriver


    at org.pentaho.di.core.database.Database.normalConnect(Database.java:415)
    at org.pentaho.di.core.database.Database.connect(Database.java:353)
    at org.pentaho.di.core.database.Database.connect(Database.java:306)
    at org.pentaho.di.core.database.Database.connect(Database.java:294)
    at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestReport(DatabaseFactory.java:84)
    at org.pentaho.di.core.database.DatabaseMeta.testConnection(DatabaseMeta.java:2459)
    at org.pentaho.ui.database.event.DataHandler.testDatabaseConnection(DataHandler.java:541)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.pentaho.ui.xul.impl.AbstractXulDomContainer.invoke(AbstractXulDomContainer.java:329)
    at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:139)
    at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:123)
    at org.pentaho.ui.xul.swt.tags.SwtButton.access$500(SwtButton.java:26)
    at org.pentaho.ui.xul.swt.tags.SwtButton$4.widgetSelected(SwtButton.java:121)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
    at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
    at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
    at org.eclipse.jface.window.Window.open(Window.java:796)
    at org.pentaho.ui.xul.swt.tags.SwtDialog.show(SwtDialog.java:375)
    at org.pentaho.ui.xul.swt.tags.SwtDialog.show(SwtDialog.java:301)
    at org.pentaho.di.ui.core.database.dialog.XulDatabaseDialog.open(XulDatabaseDialog.java:115)
    at org.pentaho.di.ui.core.database.dialog.DatabaseDialog.open(DatabaseDialog.java:62)
    at org.pentaho.di.ui.spoon.delegates.SpoonDBDelegate.newConnection(SpoonDBDelegate.java:493)
    at org.pentaho.di.ui.spoon.delegates.SpoonDBDelegate.newConnection(SpoonDBDelegate.java:478)
    at org.pentaho.di.ui.spoon.Spoon.doubleClickedInTree(Spoon.java:2885)
    at org.pentaho.di.ui.spoon.Spoon.access$2300(Spoon.java:332)
    at org.pentaho.di.ui.spoon.Spoon$27.widgetDefaultSelected(Spoon.java:5657)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
    at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
    at org.pentaho.di.ui.spoon.Spoon.readAndDispatch(Spoon.java:1227)
    at org.pentaho.di.ui.spoon.Spoon.waitForDispose(Spoon.java:7368)
    at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:8673)
    at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:625)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.pentaho.commons.launcher.Launcher.main(Launcher.java:134)
Caused by: org.pentaho.di.core.exception.KettleDatabaseException: 
Driver class 'oracle.jdbc.driver.OracleDriver' could not be found, make sure the 'Oracle' driver (jar file) is installed.
oracle.jdbc.driver.OracleDriver

    at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:474)
    at org.pentaho.di.core.database.Database.normalConnect(Database.java:399)
    ... 45 more
Caused by: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:467)
    ... 46 more

【问题讨论】:

【参考方案1】:

在我的情况下,错误出现在 报告设计器

修复:仅将 ojdbc14.jar 复制到

\prd-ce-5.0.1-stable\report-designer\lib

并重新启动工具。

【讨论】:

【参考方案2】:

尝试将 odbc jar 文件(例如:ojdbc5-11.1.0.7.0.jar)放在安装的“data-integration/lib”目录中。不要忘记重新启动 Pentaho 以使其工作。

【讨论】:

更多详情:knowpentaho.com/2013/12/pentaho-common-errors-driver-class.html【参考方案3】:

我可以通过选择 Oralce Native connection > Hostname as Ip address of DB server > 而不是 SN00XXXX 来解决这个问题,我使用 DB00XXX 名称作为数据库名称。

我希望这适用于 Oracle 连接的此类问题。

【讨论】:

【参考方案4】:

尝试将jar放到tomcat库文件夹中,然后重启Pentaho。

应该在这里.../biserver-ce-6.0.0.0-353/biserver-ce/tomcat/lib

这里已经有一些驱动了。

【讨论】:

【参考方案5】:

在 Pentaho 6.0 版中,将驱动程序 (ojdbc6.jar) 放入:“PentahoInstallation”\design-tools\data-integration\lib 并重新启动 Data Integration ide。

【讨论】:

【参考方案6】:

    首先访问 Oracle 站点: http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html

    下载 1 个文件:ojdbc6.jar (2,739,670 字节)-(SHA1 校验和:a483a046eee2f404d864a6ff5b09dc0e1be3fe6c) 用于 JDK 1.6 的类。它包含 JDBC 驱动程序类,但在 Oracle 对象和集合类型中支持 NLS 的类除外。

    复制到 Pentaho 文件夹:C:\Program Files\Pentaho\data-integration\lib

这适用于我的带有最新 Pentaho 5.3 Stable 的 Windows 7 X64 Pro。

【讨论】:

4.关闭勺子,如果它是打开的,然后重新打开。这是我缺少的一步【参考方案7】:

这是我的设置。我遇到了这个问题并设法解决了它。

我在我的机器上运行了 SQLDeveloper,它工作正常,即使在 *** 下也是如此。但是,我在运行 Spoon 时发现,如果我使用 ***,它将无法工作。

我尝试将 SQLDeveloper 附带的 Oracle JDBC 驱动程序放入 Pentaho。那没用。

但是,我注意到 SQLDeveloper 和 Spoon 之间的一大区别是它们使用不同的 Java 运行时和 JDBC Oracle 驱动程序!特别是,我的 SQLDeveloper 版本在 32 位 JRE 版本 1.6.0_11 上运行,而我的系统范围 JDK 是 64 位版本 1.7.0_03。

我找到了 SQLDeveloper 使用的 JDBC 驱动程序,并将它们用作 Spoon 附带的驱动程序的替代品 -- 没有变化

然后我重新定位 Spoon 以使用 SQLDeveloper 使用的 Java 运行时。

我设置了两个环境变量:PENTAHO_JAVA 和 PENTAHO_JAVA_HOME -- 现在可以正常工作了!

作为参考,这是我的环境变量:

PENTAHO_JAVA=C:\opt\sqldeveloper\jdk\jre\bin\java.exe
PENTAHO_JAVA_HOME=c:\opt\sqldeveloper\jdk\jre\

如果相关,我使用的是 Windows 7 x64。

【讨论】:

感谢您的回复!我找到了解决办法。我的系统上已经有了 Pentaho 4.1.0 的运行版本。导致问题的是 5.0.1。所以我所做的是,我从 4.1 复制了所有 /lib* 文件夹并将其粘贴到 5.0.1 的同一位置。它奏效了!下次遇到这种情况,我试试你的方法!【参考方案8】:

看,伙计们,我们不需要所有这些东西。我们需要将oracle jdbc驱动(ojdbc6.jar)粘贴到以下位置。

    C:\Program Files\pentaho\design-tools\report-designer\lib\jdbc C:\Program Files\pentaho\design-tools\data-integration\lib C:\Program Files\pentaho\design-tools\aggregation-designer\lib C:\Program Files\pentaho\design-tools\schema-workbench\lib

【讨论】:

【参考方案9】:

尝试将 ojdbc 驱动程序放入您的 PDI 路径(位置)中的 libext/JDBC 中

【讨论】:

以上是关于无法通过 Pentaho 连接到 oracle。找不到“oracle.jdbc.driver.OracleDriver”的主要内容,如果未能解决你的问题,请参考以下文章

无法连接到 Pentaho Kettle 中的 PostgreSQL 数据库

Pentaho Spoon 由于缺少驱动程序(jar 文件)而无法连接到 IBM DB2 数据库

pentaho水壶无法连接到cloudera cdh4 HDFS

无法使用 Pentaho PDI CE 连接到 MongoDb

Pentaho Kettle 连接到 Hadoop 集群

如何动态传递数据库连接属性以连接到 pentaho 中的不同数据库