我的机器是Windows 7 64位。我在机器上安装了eclipse并且有一个工作正常的java程序。 Java程序读取xml文件并将数据插入Oracle数据库。该程序使用64位jre(通过Run - > Run Configutation - > jre检查)。与db的Java连接是通过ODBC,我在ODBC中创建了DSN名称(C:\ Windows \ System32 \ odbcad32.exe -64 bit)
但是在我们的实际环境中,需要将此程序更改为使用32位ODBC,使用所有32位ODBC连接。
我做了一些关于这个问题的搜索并找到了需要使用32位jre的解决方案,它将指向32位ODBC,因为它有access-bridge-32.jar文件。
现在执行此操作(也在C:\ Windows \ SysWow64 \ odbcad32.exe下创建了DSN)并在运行程序时,在程序中执行任何sql语句时出现以下错误
代码
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
c = DriverManager.getConnection( "jdbc:odbc:"+dsn, username, password );
stmnt = c.createStatement();
String sqlqry = "SELECT COUNT(*) FROM S_EMPLOYEE WHERE NAME = 'John';";
ResultSet result = stmnt.executeQuery(sqlqry);
错误
java.sql.SQLException: General error
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(Unknown Source)
有人可以建议需要做什么
此查询在数据库端完美运行,并且如果将jre更改为指向64位。