ODBC 시스템 DSN을 통해 Microsoft Windows Server 2008 R2 64 비트 시스템에서 Java 6 콘솔 응용 프로그램과 Microsoft SQL Server 2008 R2를 연결하려고 시도하면 SQL Server Native Client 10.0. 다음 소스 코드 :ODBC 오류 : 문자열 또는 버퍼 길이가 잘못되었습니다 - Microsoft Server 2008 32 비트 대 2008 R2 64 비트
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String srcURL = "jdbc:odbc:FOO";
if (dbc == null)
{
dbc = DriverManager.getConnection(srcURL);
dbc.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
}
else
{
dbc.close();
dbc = DriverManager.getConnection(srcURL);
dbc.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
}
}
catch (ClassNotFoundException cx)
{
System.out.println("class not found");
}
catch (SQLException sx)
{
System.out.println("SQL Exception: " + sx);
log.info("SQL Exception: " + sx);
}
과 함께, 오류를 강합니다
java.sql.exception [Microsoft] [ODBC Driver Manager] invalid string buffer length
, 동일한 코드를 예외 및 ODBC 시스템 DSN이 동일한 방식으로 구성, 비 (MS 서버 2008 32 비트와 일들 R2) 및 MS SQL Server 2008 R2를 지원합니다. 두 시스템 간의 Microsoft ODBC 드라이버 DLL은 다른 버전 인 6.0.xxxx와 6.1.xxxx가 있는데, 그 원인은 범인입니다.
참고 자료가 있으십니까? 이 버그가 문서화 된 Oracle 웹 사이트의 어떤 것? –
나는 어떤 문서도 가지고 있지 않다. 64 비트의 Pc에서 쿼리를 실행하면이 오류가 표시됩니다. Java 1.7.17에서 1.7.70으로 만 업그레이드하면됩니다. – user503601
이 의미가 있습니까? https://bugs.openjdk.java.net/browse/JDK-8038751 – Horcrux7