0

javaをフロントエンド、oracleをバックエンドとするデータベースアプリケーションを作成しようとしています。

32 ビットの oracle 10g (10.2) がインストールされた 64 ビットの win7 システムを使用しています。

C:\Windows\SysWOW64\odbcad32.exe「コントロール パネル/管理ツール/odbc データ ソース」に「Microsoft Oracle ODBC」のオプションが表示されないため、DSN を from/via で作成しました

しかし、データベースへの接続中に次のエラーが発生します。

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 に答える