0

好的,所以它几乎已经像馅饼一样容易了。但它真的应该比它更容易。

我想我应该能够通过将 JDBC 连接字符串放入 TNSNAMES 来连接到另一个数据库。每个数据库供应商都有一个 type-4 JDBC 驱动程序,而且通常有一个很好的免费替代方案。

鉴于 Oracle 是如此热衷于 Java 的粉丝,并且在数据库中内置了 JVM,我原以为基于 JDBC 的链接技术将是不费吹灰之力。在 TNSNAMES 中有一个 JDBC 连接字符串似乎是一个自然的扩展,并且一切都会“正常工作”——你可以对任何东西使用“sql*plus”。

但它不是这样工作的。如果你想连接到另一个非 Oracle 数据库,你必须购买一个叫做 Oracle 网关的东西或者使用 ODBC(通过一个叫做 Generic Connectivity 的东西)。

[原创性警告...这与我以前的问题有关,但有人建议我输入补充评论作为单独的问题。我与谁争辩?]

4

4 回答 4

2

答案与以下问题相同:

  1. 为什么 Oracle 不提供将数据卸载为非专有格式(例如逗号分隔或 XML)的有效方法
  2. 为什么大多数 Oracle 非 DB 产品只能与 Oracle RDBMS 一起使用?(无需使用 Oracle 数据库网关)

你听说过供应商锁定的概念吗?

于 2008-10-14T00:50:26.570 回答
1

我当然认为这个问题有些修辞,并且需要大量盐分。:-)

本着这种精神,一个适当轻率的答案可能是“因为他们不希望您使用其他人的数据库”?

于 2008-10-13T20:28:47.190 回答
0

这是一个真正的问题——也许有点开玩笑,但肯定不是修辞。让访问其他人的数据变得非常容易,这完全符合 Oracle 的利益。目前有很多方法可以做到这一点,但没有一个足够简单。数据库中有一个 JVM,每个其他数据库都有 JDBC 驱动程序——它应该“正常工作”,所以我只能假设它没有被“正常工作”是有原因的。

我的问题是是否有人知道这个原因。有没有人?

于 2008-10-13T21:32:54.067 回答
0

TNS有点乱,恕我直言。在我(诚然有限的)经验中,它似乎在不同平台之间表现不一致。

为 Oracle 辩护对我来说远非如此,但我对 JDBC 瘦驱动程序没有任何问题。(如果您阅读 oracle jdbc 文档,他们会阻止您使用 oci,除非您有充分的理由。

将它与 JNDI(在 j2ee 应用服务器上)配对,您的所有连接管理问题都会得到解决。

于 2008-10-14T03:35:40.200 回答