Java-Database(oracle)odbc驱动程序不匹配

时间:2012-09-29 08:48:49

标签: java database oracle odbc drivers

我正在尝试创建一个数据库应用程序,其中java作为前端,oracle作为后端。

我有一个安装了32位oracle 10g(10.2)的64位win7系统。

我是通过C:\Windows\SysWOW64\odbcad32.exe创建了一个DSN,因为“控制面板/管理工具/ odbc数据源”没有显示“Microsoft Oracle ODBC”的选项

但是在连接数据库时我收到了这个错误:

java.sql.SQLException: [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956)
    at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113)
    at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3072)
    at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
    at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
    at java.sql.DriverManager.getConnection(DriverManager.java:579)
    at java.sql.DriverManager.getConnection(DriverManager.java:221)
    at InsertRecord.main(InsertRecord.java:28)
    at __SHELL7.run(__SHELL7.java:6)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at bluej.runtime.ExecServer$3.run(ExecServer.java:724)

我认为这是因为64位32位冲突。如果是这样的话,如果我安装了64位的odbc驱动程序,它会工作还是我需要再次为win64安装oracle数据库。

如果司机会这样做,我可以从哪里单独下载驱动程序?

任何人都有帮助吗?我在尝试使用odbc连接到oracle时遇到此错误

Driver loaded
java.sql.SQLException: [Microsoft][ODBC driver for Oracle][Oracle]ORA-06413: Connection not open.
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at InsertRecord.main(InsertRecord.java:28)
java.lang.NullPointerException

1 个答案:

答案 0 :(得分:2)

您不应该首先使用JDBC / ODBC桥。

下载Oracle(纯Java)JDBC驱动程序(http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html),您不必担心任何32位对64位再也不匹配了。

作为额外的好处,数据库访问将更快,更可靠。

没有什么可以“安装”,只需在应用程序中使用.jar文件即可。没有搞乱tnsnames.ora,没有在计算机上安装Oracle客户端。