0

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

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

我从/通过创建了一个 DSN,C:\Windows\SysWOW64\odbcad32.exe因为“控制面板/管理工具/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
4

1 回答 1

2

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

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

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

无需“安装”,只需使用应用程序中的 .jar 文件即可。不要乱用 tnsnames.ora,也不要在计算机上安装 Oracle 客户端。

于 2012-09-29T09:01:11.147 回答