Oracle驱动程序的内部机制

4

我在哪里可以找到关于Oracle在最底层(即套接字级别)与数据库通信的信息?我想编写一个程序(不使用jdbc),只是简单地执行一些语句(select或create)。因此,我需要知道Oracle使用什么协议来实现这一点。

2个回答

10
为什么您想要/需要消除JDBC呢?这正是JDBC存在的原因,也是Oracle为其数据库提供JDBC驱动程序的原因。即使您正在尝试做的事情存在一些低级协议文档,您也无法保证它在Oracle版本之间具有可移植性等。
我假设您想要消除安装Oracle客户端。如果是这种情况,请确保使用类型 4 JDBC驱动程序,或者使用Oracle的“thin”驱动程序 - 可在 http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html 上获得。这正是您可能想要做的事情 - 通过纯Java连接到Oracle数据库,而无需安装任何其他软件 - 尽管从技术上讲,它仍然是JDBC。
如果您仍然坚持在没有任何Oracle客户端组件(甚至包括Oracle类型 4 JDBC驱动程序)的情况下继续进行,这里有一些可能会感兴趣的附加链接:

我在哪里可以获得Oracle的Wire-Level协议规范?

Oracle。 除了一些wire-level驱动程序供应商之外,没有其他人有它。 同样,在驱动程序供应商之外,Oracle是唯一有 权限分发。在您询问之前,我从未见过 规范。我的所有协议知识都基于多年的研究和显着的试错。

这个项目曾经可以在http://sourceforge.net/projects/sibylnet/上找到,但自2008年10月7日以来没有任何更新,也没有任何文件或源代码可用。


瘦客户端驱动程序是一种类型为4的驱动程序,而不是类型为3的“数据库代理中间件驱动程序”。 - Mark Rotteveel

1
你可以查看一下 Oracle 关于 Oracle Call Interface 的文档。虽然它是用于 C 语言的,而不是 Java,但如果你在一些 Java Native Interface 的东西中进行包装,你可能能够弄清楚如何调用它。
并不是说这会很轻松,但这是一个值得尝试的方向。
/b

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接