2012-09-29 64 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。你的問題到底是什麼? –

相關問題