Str*_*kop 16 java sql oracle jdbc ora-01722
为什么Oracle为每个(!)数据库版本提供了不同的(!)版本的JDBC驱动程序,例如ojdbc14.jar?
这些文件都有不同的大小,因此可能有不同的内容.
背景:
保存数据时,我们得到一个随机且看似不可复制的错误"无效数字"(我们猜测它是时间戳).但这不是任何特别的声明.大多数时候,它保存得很好.每月只需一次无害的陈述就会失败.
所以我仔细看了一下Oracle的下载站点,发现尽管文件共享同名,但没有一个文件大小匹配.
我们的产品运行在由客户维护的数据库上,即客户端运行的任何版本和补丁都是它的本质.
那么我们使用什么驱动程序?最新的(Oracle 11g) - 尽管它通常是9i和 10g数据库?
为什么他们不将所有版本链接到相同的"一个驱动程序适合所有"文件?
或者是否存在微小的差异导致像随机错误这样的影响?
编辑:我错了9i数据库.
Oli*_*els 19
请参阅http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#02_02上的兼容性矩阵
另请注意,timestamp数据类型仅在Oracle 10之后可用.
Jea*_*ene 11
ojdbc14.jar、ojdbc5.jar、ojdbc6.jar、ojdbc7.jar 和 ojdbc8.jar 中的数字是指所使用的 Java 编译器的版本。每个版本的 Java 都会带来新的 JDBC API,因此这些数字对于了解预期内容非常有用。例如在Java中8,有一种新的方法executeLargeUpdate中java.sql.PreparedStatement。此方法将在 ojdbc8.jar 中实现,但不在 ojdbc7.jar 中。此外,如果您的运行时使用 Java 7,那么您就知道不能使用 ojdbc8.jar,否则会遇到java.lang.UnsupportedClassVersionError错误。这就是 Oracle 在 jar 名称中包含这些数字的原因。另请注意,如果您想知道 jar 来自哪个 Oracle 数据库版本,您可以运行java -jar ojdbc8.jar. 数据库和驱动程序都向后兼容(最多 1 个主要版本),因此,即使是推荐的,您也不必在两个层上使用相同版本的产品。
| 归档时间: |
|
| 查看次数: |
15921 次 |
| 最近记录: |