2012-09-29 67 views
0

我想创建一个数据库应用程序与java作为前端和oracle作为后端。Java数据库(ORACLE)odbc驱动程序不匹配

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

我创建从DSN /通过C:\Windows\SysWOW64\odbcad32.exe因为“控制面板/管理工具/ ODBC数据源”不显示“微软的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

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

不使用本地Java驱动程序的Oracle(类型4)而不需要设置ODBC数据源的任何原因? – home

+0

没有具体的原因,只是我是新来的,我知道这一点,因为我已经用它在32-win7 –

+0

可能你可以保留64位和32位的Oracle数据库驱动程序。 通过链接https://communities.sas.com/thread/34643?start=0&tstart=0 – Ankit

回答

2

你不应该使用在第一位的JDBC/ODBC桥来连接到oracle我得到这个错误。

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

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

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

+0

我需要使用oracle –

+0

@ RC-user:那又如何?该驱动程序来自Oracle的Oracle数据库,因此您可以连接到Oracle并使用Oracle。你的问题到底是什么? –

相关问题