Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java数据库(oracle)odbc驱动程序不匹配_Java_Database_Oracle_Odbc_Drivers - Fatal编程技术网

Java数据库(oracle)odbc驱动程序不匹配

Java数据库(oracle)odbc驱动程序不匹配,java,database,oracle,odbc,drivers,Java,Database,Oracle,Odbc,Drivers,我正在尝试创建一个以java为前端,以oracle为后端的数据库应用程序 我有一个64位win7系统,安装了32位oracle 10g(10.2) 我从/viaC:\Windows\SysWOW64\odbcad32.exe创建了一个DSN,因为“控制面板/管理工具/odbc数据源”不显示“Microsoft Oracle odbc”的选项 但在连接到数据库时,出现以下错误: java.sql.SQLException: [Microsoft][ODBC Driver Manager] The

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

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

我从/via
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

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

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

另外一个好处是,数据库访问将更快、更可靠


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

有没有理由不使用Oracle的本机Java驱动程序(类型4)不需要设置ODBC数据源?没有具体的原因,只是我对它不熟悉,我知道这一点,因为我已经在32-Win7中使用过它。您可以保留64位和32位的oracle数据库驱动程序。通过@Ankit链接,但这意味着我需要下载该链接,然后重新检查整个过程!!驱动程序不能完成任务吗?有64位odbc驱动程序的链接吗?@RC user:那又怎样?该驱动程序来自Oracle for Oracle DB,因此您可以连接到Oracle并使用Oracle。你的问题到底是什么?