prosource

오라클 jdbc 드라이버 버전 광기

probook 2023. 6. 22. 21:57
반응형

오라클 jdbc 드라이버 버전 광기

도대체 왜 Oracle은 모든(!) 데이터베이스 버전에 대해 다른(!) 버전의 JDBC 드라이버(예: ojdbc14.jar)를 제공합니까?
파일 크기가 모두 다르므로 내용이 다를 수 있습니다.

배경:
데이터를 저장할 때 "잘못된 숫자"라는 무작위 오류가 발생합니다(타임스탬프인 것으로 추정됨).하지만 그것은 어떤 특정한 진술이 아닙니다.대부분의 경우, 그것은 아주 잘 절약됩니다.한 달에 한 번만 무해하게 보이는 진술이 실패할 것입니다.

그래서 오라클의 다운로드 사이트를 자세히 살펴보니 파일 이름이 동일함에도 불구하고 파일 크기가 일치하지 않습니다.

당사 제품은 고객이 유지 관리하는 데이터베이스에서 실행됩니다. 즉, 고객이 실행 중인 버전과 패치가 무엇이든 상관없습니다.
그럼 어떤 드라이버를 사용할까요?최신(오라클 11g) - 보통 그렇더라도. 9i와 10g 데이터베이스?

모든 버전을 동일한 "모든 드라이버에 적합한 단일" 파일에 연결하는 것은 어떨까요?
아니면 무작위 오류와 같은 효과로 이어지는 미세한 차이가 있습니까?

편집: 제가 9i 데이터베이스에 대해 잘못 알고 있었습니다.

https://docs.oracle.com/en/database/oracle/oracle-database/19/jjdbc/JDBC-getting-started.html#GUID-926E5324-D89A-4A00-B1AE-975C1089F0EA 에서 호환성 매트릭스를 참조하십시오.

또한 타임스탬프 데이터 유형은 오라클 10 이후에만 사용할 수 있습니다.

ojdbc14.jar, ojdbc5.jar, ojdbc6.jar, ojdbc7.jar 및 ojdbc8.jar의 숫자는 사용된 Java 컴파일러 버전을 나타냅니다.모든 버전의 Java에는 새로운 JDBC API가 제공되므로 이러한 숫자는 무엇을 예상해야 하는지 아는 데 유용합니다.예를 들어 Java 8에는 새로운 방법이 있습니다.executeLargeUpdatejava.sql.PreparedStatement이 방법은 ojdbc8.jar에서 구현되지만 ojdbc7.jar에서는 구현되지 않습니다.또한 런타임이 Java 7을 사용하는 경우에는 ojdbc8.jar를 사용할 수 없으며 그렇지 않으면 다음과 같은 상황이 발생합니다.java.lang.UnsupportedClassVersionError오류. Oracle이 이러한 숫자를 jar 이름에 포함시키는 이유입니다.또한 어떤 Oracle Database 릴리즈에서 jar가 왔는지 알고 싶다면 다음을 실행할 수 있습니다.java -jar ojdbc8.jar데이터베이스와 드라이버는 모두 하위 호환성(최대 1개의 주요 릴리스)이므로 권장되더라도 두 계층에서 동일한 버전의 제품을 사용할 필요가 없습니다.

Oracle 데이터베이스를 8.1.7에서 10.2.0으로 업그레이드했을 때 동일한 Oracle jdbc 드라이버(ojdbc14.jar)를 사용할 수 있었습니다.그래서 그들의 jdbc 드라이버는 동시에 꽤 많은 버전을 지원합니다.물론 일부 드라이버가 버그가 있을 수도 있지만 더 많은 버전을 동시에 지원할 계획입니다.

언급URL : https://stackoverflow.com/questions/756208/oracle-jdbc-driver-version-madness

반응형