【问题标题】:Oracle, PDO_OCI vs OCI8甲骨文,PDO_OCI 与 OCI8
【发布时间】:2011-02-03 13:24:01
【问题描述】:

我工作的公司目前使用一些基本功能来抽象 OCI 库作为数据库连接的一种手段。我们正在考虑切换到 PHP 的 PDO 对象,但从一些快速搜索来看,Oracle 驱动程序似乎不如其他 PDO 驱动程序成熟。如果有人在生产环境中使用过 PDO/oci8,我将不胜感激。

谢谢!

【问题讨论】:

  • 您确实意识到 Oracle PDO 驱动程序被标记为实验性的,对吧?

标签: php oracle pdo oracle-call-interface


【解决方案1】:

我没有使用 PDO 驱动程序的个人经验(被标记为 experimental 就足够了,甚至不考虑它)。但在The Underground PHP and Oracle Manual 中,我们可以阅读以下内容,作为PHP PDO 扩展一章的前言:

PDO 扩展和 PDO_OCI 驱动程序是开源的,包含在 PHP 5.1 起。 Oracle 不参与 PDO_OCI。

PHP 社区让 PDO 项目停滞不前,Oracle 建议使用 OCI8 尽可能地代替它,因为它具有更好的功能集, 性能、可靠性和稳定性。 一般情况下使用 PDO_OCI 不推荐用于目的的应用程序。

扩展还没有完成,它可能维护不善(尽管有些bug fixes 时不时地通过)并且多年来一直如此。我不会把我的鸡蛋放在那个篮子里。

【讨论】:

    【解决方案2】:

    在我看来,Oracle 对开发 PDO 驱动程序不感兴趣,它正在开发自己的驱动程序以使您接近 oracle 数据库...到 oracle 驱动程序...等:)

    据我所知,如果你能应付最大的问题,那是没有问题的。 VARCHAR2 的 4000 个字符的文本。如果您需要 CLOB(和/或更大),请不要使用 PDO_OCI。

    我创建了一套“PDOSurrogate”类,以替代 Oracle 的 PDO。 当 PDO 足够成熟时,我可以使用 Refactor->Rename 将其更改为 PDO。

    【讨论】:

      【解决方案3】:

      可能是我来晚了……只是想为讨论增加一些价值。我在 OCI8 和 OCI8_11 扩展方面经验丰富,并且使用存储过程/包、CLOB/BLOB 和 XML 完成了一些广泛的工作量曾经用于 ETL(Extract Transform Load)应用程序来处理繁重的工作负载......也相信 oci8 是广泛使用的扩展......而不是 pdo ..

      【讨论】:

      • 我认为您误读了这个问题。没有人否认 OCI 的优势。问题是:PDO驱动可靠吗?
      猜你喜欢
      • 2011-08-22
      • 2016-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多