||Extension for Oracle Database
Antony Dovgal (lead)
Christopher Jones <
christopher dot jones at oracle dot com >
Tianfang Yang <
tianfang dot yang at oracle dot com >
Wez Furlong <
wez at php dot net >
Andi Gutmans <
andi at zend dot com >
||Use the OCI8 extension to access Oracle Database. Use 'pecl install
oci8' to install for PHP 7. Use 'pecl install oci8-2.0.12' to install
for PHP 5.2 - PHP 5.6. Use 'pecl install oci8-1.4.10' to install for
PHP 4.3.9 - PHP 5.1. The OCI8 extension can be linked with Oracle
client libraries from Oracle Database 12, 11, or 10.2. These
libraries are found in your database installation, or in the free
Oracle Instant Client from
Oracle's standard cross-version connectivity applies. For example,
PHP OCI8 linked with Instant Client 11.2 can connect to Oracle
Database 9.2 onward. See Oracle's note "Oracle Client / Server
Interoperability Support" (ID 207303.1) for details.
- NEW FUNCTIONALITY:
- Added Implicit Result Set support for Oracle Database 12c.
Streaming of all IRS's returned from a PL/SQL block is available
via oci_fetch_array, oci_fetch_assoc, oci_fetch_object and
oci_fetch_row (but not oci_fetch or oci_fetch_all).
Alternatively individual IRS statement resources can be obtained
with the new function 'oci_get_implicit_resultset' and passed to
any oci_fetch_* function.
- Added DTrace probes enabled with PHP's generic --enable-dtrace
- IMPROVED FUNCTIONALITY:
- Using 'oci_execute($s, OCI_NO_AUTO_COMMIT)' for a SELECT no
longer unnecessarily initiates an internal ROLLBACK during
connection close. This can improve overall scalability by
reducing "round trips" between PHP and the database.
- CHANGED FUNCTIONALITY:
- PHPINFO() CHANGES:
- The oci8.event and oci8.connection_class values are now shown
only when the Oracle client libraries support the respective
- Connection statistics are now in a separate phpinfo() table.
- Temporary LOB and Collection support status lines in
phpinfo() were removed. These features have always been
enabled since 2007.
- OCI_INTERNAL_DEBUG() CHANGES:
- The oci_internal_debug() function is now a no-op. Use PHP's
--enable-dtrace functionality with DTrace or SystemTap instead.
- INTERNAL CHANGES:
- Fixed a potential NULL pointer dereference flagged by Parfait
static code analyis.
- Extended testing of existing OCI8 functionality.
- Improved test output portability when using the PHP development
web server to run tests.
- Removed no-longer necessary unicode patterns from tests
(vestiges of PHP's previous PHP 6 project)
- Improved build portability by removing compilation type cast
warnings with some compilers.
- Fixed compilation warnings when building with Oracle 9.2
- Updated code to use internal macro PHP_OCI_REGISTER_RESOURCE.
- Regularized code prototypes and fixed some in-line documenation
- Fixed code folding.