oci8 pecl.php.net Extension for Oracle Database The OCI8 extension lets you access Oracle Database. Use 'pecl install oci8' to install for PHP 8. Use 'pecl install oci8-2.2.0' 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 10.2 or later. These libraries are found in your database installation, or in the free Oracle Instant Client from https://www.oracle.com/database/technologies/instant-client.html. Oracle's standard cross-version connectivity applies. For example, PHP OCI8 linked with Instant Client 19c can connect to Oracle Database 11.2 onward. See Oracle's note "Oracle Client / Server Interoperability Support" (ID 207303.1) for details. Christopher Jones sixd sixd@php.net yes Tianfang Yang tianfyan tianfyan@php.net no Antony Dovgal tony2001 tony2001@php.net no Wez Furlong wez wez@php.net no Andi Gutmans andi andi@zend.com no 2020-12-21 3.0.1 3.0.1 stable stable PHP This version is for PHP 8 only. Updated Windows build environment to build with newer Oracle Client libraries. (cmb) 8.0.0 1.4.0b1 oci8 2.2.0 2.2.0 stable stable PHP This version is for PHP 7 only. Added oci_set_call_timeout() for call timeouts. (Requires Oracle client libraries 18c or later) Added oci_set_db_operation() for the Oracle Database 'DBOP' end-to-end-tracing attribute. (Requires Oracle 12.2 or later) Fixed bug #76804 (oci_pconnect with OCI_CRED_EXT not working). (KoenigsKind) Fixed installation on PHP 7.3. Internal change: Convert some parameter parsing to the Fast Parameter Parsing API. 3.0.0 3.0.0 stable stable PHP This version is for PHP 8 only. Deprecated old OCI8 function aliases. (Jens de Nies) Removed obsolete no-op function oci_internal_debug(). (Jens de Nies) The OCI-Lob class is now called OCILob for standards compliance. The OCI-Collection class is now called OCICollection for standards compliance. Generate arginfo from function stubs. (Jens de Nies) 2.1.8 2.1.8 stable stable PHP This version is for PHP 7 only. Fixed reference counting and memory issues. (Dmitry, Tianfang) 2.1.7 2.1.7 stable stable PHP This version is for PHP 7 only. Added oci_unregister_taf_callback() 2.1.6 2.1.6 stable stable PHP This version is for PHP 7 only. Fixed bug #74625 (Integer overflow in oci_bind_array_by_name). (Ingmar Runge) 2.1.5 2.1.5 stable stable PHP This version is for PHP 7 only. Added TAF callback support (PR #2459, KoenigsKind) 2.1.4 2.1.4 stable stable PHP This version is for PHP 7 only. Fixed uninitialized data causing random crash 2.1.3 2.1.3 stable stable PHP This version is for PHP 7 only. Fixed bug #71148 (Bind reference overwritten on PHP 7) 2.1.2 2.1.2 stable stable PHP This version is for PHP 7 only. Fixed invalid handle error with Implicit Result Sets Fixed bug #72524 (Binding null values triggers ORA-24816 error) 2.1.1 2.1.1 stable stable PHP This version is for PHP 7 only. Fixed bug #71600 (oci_fetch_all segfaults when selecting more than 8 columns) 2.1.0 2.1.0 stable stable PHP This version is for PHP 7 only. Updated driver name format. 2.0.10 2.0.10 stable stable PHP Fixed bug #68298 (OCI int overflow) 2.0.9 2.0.9 stable stable PHP Fixed oci_field_* reflection: $field can be a column name or index 2.0.8 2.0.8 stable stable PHP Enhancement - Improve performance of multi-row OCI_RETURN_LOB queries (Bug #66875) 2.0.7 2.0.7 stable stable PHP Added oci_bind_by_name() support for PL/SQL BOOLEAN type Build change: Fix source variable definition for C89 compatibility 2.0.6 2.0.6 stable stable PHP Added a LICENSE file to make it easier for PECL binary distributions to conform with the license. 2.0.5 2.0.5 stable stable PHP Bump PHP OCI8 2.0 minimum requirements to PHP 5.2 and Oracle client library 10.2. (Use OCI8 1.4 for older PHP version support or if only Oracle 9.2 client libraries are available.) Re-enable php_oci8.dll and php_oci8_11g.dll for Windows builds so URL links work in the new Windows PECL infrastructure. 2.0.4 2.0.4 devel devel PHP Fix persistent memory usage with --enable-dtrace Export get_module() for Windows php_oci8_12c.dll 2.0.3 2.0.3 devel devel PHP Add the oci_set_client_identifier() value and statement structure pointer to several DTrace probes. Use 'phpoci' as the DTrace provider name since uniqueness is required by the Linux fasttrap module. Update Windows builds to create only php_oci8_12c.dll. 2.0.2 2.0.2 devel devel PHP Review and improve error handling code and data types. Fix oci_set_*($connection, ...) error handling so oci_error($connection) works. Add DTrace oci8-connection-close probe Add the connection handle to several DTrace probes. 2.0.1 2.0.1 devel devel PHP Fixed --enable-maintainer-zts mode. Allow Implicit Result Set statement resources to inherit the parent's current prefetch count. Allow OCI8 to be DTrace-enabled independently from core PHP. Require OCI8 to be configured 'shared' when enabling DTrace support. 2.0.0 2.0.0 devel devel PHP - 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 functionality. - 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 analysis. - 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 client libraries. - Updated code to use internal macro PHP_OCI_REGISTER_RESOURCE. - Regularized code prototypes and fixed some in-line documentation prototypes. - Fixed code folding. 1.4.10 1.4.10 stable stable PHP Bump PECL package info version check to allow PECL installs with PHP 5.5+ 1.4.9 1.4.9 stable stable PHP Re-fixed bug #60901 (Improve "tail" syntax for AIX installation) 1.4.8 1.4.8 stable stable PHP Fixed bug #63307 (Unused variable in oci8.c) Fixed bug #63265 (Add ORA-00028 to the PHP_OCI_HANDLE_ERROR macro) Fixed bug #60901 (Improve "tail" syntax for AIX installation) 1.4.7 1.4.7 stable stable PHP Fixed bug #59985 (show normal warning text for OCI_NO_DATA) Fixed OCI8 part of bug #55748 (CVE-2011-4153: multiple NULL pointer dereferences with zend_strndup) Fixed OCI8 part of bug #55301 (multiple null pointer dereferences with calloc) Increased maximum Oracle error message buffer length for new Oracle 11.2.0.3 size Improve internal initialization failure error messages 1.4.6 1.4.6 stable stable PHP Added oci_client_version() returning the run time Oracle client library version Made OCI8 extension buildable with PHP 5.4-development code 1.4.5 1.4.5 stable stable PHP Protect against null bytes in LOB filenames (http://news.php.net/php.internals/50202) 1.4.4 1.4.4 stable stable PHP Fixed bug #53284 (Valgrind warnings in oci_set_* functions) Enhancement - improve startup failure error messages 1.4.3 1.4.3 stable stable PHP Fixed bug #51610 (Using oci_connect causes PHP to take a long time to exit). Requires Oracle 11.2.0.2 client libraries (or Oracle bug fix 9891199) for this patch to have an effect. 1.4.2 1.4.2 stable stable PHP Fixed bug #52186 (phpinfo() shows 10.1 or 11.1 when installed with ORACLE_HOME 10.2 or 11.2) Fixed bug #51691 (Unnecessary realloc causes crashes in PHP trunk tests with interned strings) Fixed bug #51577 (Uninitialized memory reference with oci_bind_array_by_name) Fixed bug #51291 (oci_error doesn't report last error when called two times) OCI8 1.4.2 is included in PHP 5.3.3 1.4.1 1.4.1 stable stable PHP Fixed bug #49560 (Using LOBs causes slow PHP shutdown) Fixed bug #47281 ($php_errormsg is limited in size of characters) 1.4.0 1.4.0 alpha alpha PHP 1. Introduce connection attribute functions: oci_set_module_name oci_set_action oci_set_client_info oci_set_client_identifier These set values that are visible/used by the database. They are useful for tracing, authentication and auditing. 2. Introduce connection attribute function: oci_set_edition Oracle 11g R2 "editions" allow multiple versions of DB objects to exist at one time. By setting different editions, two different versions of an application can run concurrently, making upgrading easier and faster. 3. Set the DRIVER_NAME attribute of Oracle Database 11gR2 connections to aid application tracing. The value used is to "PHP OCI8" followed by the OCI8 version number. Note the version number may get truncated in DB views such as v$session_connect_info. 4. Allow the oci_set_prefetch value to be 0. This is important in some cases using REF CURSORS in Oracle 11gR2. 5. Introduce OCI_NO_AUTO_COMMIT as an alias for the OCI_DEFAULT constant (which is not the default value) used by oci_execute(). 6. Generate an error if an invalid resource type is used in oci_bind_by_name 7. Bug fixes: PECL bug #16842 (oci_error returns false when NO_DATA_FOUND is raised) 1.3.5 1.3.4 stable stable PHP Fixed bug #47243 (Crash at end of request shutdown on Windows) Fixed bug #46994 (CLOB size does not update when using CLOB IN OUT param in stored procedure) Fixed bug #46623 (phpinfo doesn't show compile time ORACLE_HOME with phpize) Fixed bug #45458 (Numeric keys for associative arrays are not handled properly) Note: not fixed when building with PHP 4 due to lack of PHP internal helper. Fixed PECL bug #16035 (oci_connect without ORACLE_HOME defined causes segfault) Fixed PECL bug #15988 (sqlnet.ora isn't read with older Oracle libraries) Fixed PECL bug #14268 (Allow "pecl install oci8" command to "autodetect" an Instant Client RPM install) 1.3.4 1.3.4 stable stable PHP Enhancement - Allow External Authentication (not supported on Windows) Enhancement - Reflection will show function and method arguments with PHP 5.x Increase default oci8.default_prefetch from 10 to 100 Correctly define SQLT_BDOUBLE and SQLT_BFLOAT constants with Oracle 10g ORACLE_HOME builds 1.3.3 1.3.3 stable stable PHP Changed OCI NLS initialization for consistency and technical correctness Removed obsolete macros 1.3.2 1.3.2 beta beta PHP Refine DRCP connection pooling functionality Do scope-end release for oci_pconnect (oci8.old_oci_close_semantics=1 gives old behavior) Fixed bug #44372 (compilation with Oracle 10gR1 libraries) Fixed PECL bug #12431 (PEAR install using x86_64 RPM builds) Allow builds with PHP 4.3.9 onwards 1.3.1 1.3.1 beta beta PHP Fixed bug #44113 (New collection creation can fail with OCI-22303) Fixed bug #42841 (Crash with REF CURSORS when statement caching enabled) Fixed bug #42496 (Cursor leak selecting LOBs Fixed bug #43497 (Temporary LOB leak) Fixed PECL bug #12431 (ping functionality is broken) Allow compilation with 64bit Instant Client RPMs Allow -with-oci8=instantclient with no directory specified look for RPM install Refine DRCP functionality 1.3.0 1.3.0 beta beta PHP Added DRCP and FAN support. 1.2.5 1.2.5 stable stable PHP This release is based on the OCI8 included in PHP 5.2.6, with the addition of the fix for http://pecl.php.net/bugs/bug.php?id=13523. -------- Fixed bug #42496 (cursor leak selecting LOBs http://bugs.php.net/bug.php?id=42496 Fixed bug #42841 (crash with REF CURSORS when statement caching enabled) http://bugs.php.net/bug.php?id=42841 Fixed bug #43497 (Temporary LOB leak) http://bugs.php.net/bug.php?id=43497 Fixed bug #44206 (OCI8 selecting ref cursors leads to ORA-1000 maximum open cursors reached). Fixed bug #44008 (OCI8 incorrect usage of OCI-Lob->close crashes PHP). Fixed bug #44113 (new collection creation can fail with OCI-22303) http://bugs.php.net/bug.php?id=44113 Enhancement - make -with-oci8=instantclient with no directory specified look for RPM install Enhancement - compile with 64bit Instant Client RPMs (bug http://bugs.php.net/bug.php?id=41941, http://pecl.php.net/bugs/bug.php?id=13523) 1.2.4 1.2.4 stable stable PHP Fixed PECL bug #10194 (crash in Oracle client when memory limit reached in the callback) Fixed bug #42173 (oci_field_type fixes for INTERVAL and TIMESTAMP types) Fixed bug #42134 (oci_error() returns false after oci_new_collection() fails) Fixed bug #41917 (oci_field_precision and oci_field_scale datatypes fixed) Fixed bug #41711 (Null temporary lobs not supported) Fixed bug #41594 (Statement cache is flushed too frequently) Fixed bug #40415 (oci_fetch_all and nested cursors, allocate descriptors dynamically) Fixed segfault on rebinding and re-executing a statement with LOBs. Fixed compile failure in ZTS mode when collections support is missing. Allowed statement cache size to be set for non-persistent connections. Improved oci_password_change() to close persistent connections on shutdown (to update hashed connection details) Changed oci_pconnect() to behave like oci_connect() when SYSDBA and SYSOPER privileges are used. Various minor improvements. 1.2.3 1.2.3 stable stable 2007-01-25 PHP Fixed possible segfault in ZTS mode when statements containing sub-statements are destroyed in wrong order. Fixed bug #40078 (ORA-01405 when fetching NULL values using oci_bind_array_by_name()). Fixed bug #39988 (type argument of oci_define_by_name() is ignored). Fixed bug #39732 (oci_bind_array_by_name doesn't work on Solaris 64bit). Fixed PECL bug #8816 (issue in php_oci_statement_fetch with more than one piecewise column). Various minor improvements. 1.2.2 1.2.2 stable stable 2006-08-24 PHP Reimplemented oci_lob_read() utilities using patch from Massimo Squillace (msquillace at sogei dot it), which should fix Unicode LOB problems. Fixed bug #38161 (oci_bind_by_name() returns garbage when Oracle didn't set the variable) Fixed bug #38173 (Freeing nested cursors causes OCI8 to segfault) Fixed bug #37886 (oci_connect may crash when charset parameter is given) Fixed bug #37931 (possible crash after database restart when using persistent connections) Fixed bug #37531 (oci8 persistent connection corruption) Fixed bug #37487 (oci_fetch_array() array-type should always default to OCI_BOTH) Fixed bug #37392 (Unnecessary call to OCITransRollback() at the end of request) Fixed bug #35973 (Error ORA-24806 occurs when trying to fetch a NCLOB field) Fixed bug #34005 (oci_password_change() fails). Patch by pholdaway at technocom-wireless dot com. Fixed PECL bug #8112 (Persistent connections misbehave when Apache process times out) 1.2.1 1.2.1 stable stable 2006-05-02 PHP Added support for BINARY_DOUBLE and BINARY_FLOAT (see #36764) Changed oci_field_type() to return VARCHAR2 instead of VARCHAR (according to feature request #36800) Fixed bug #37059 (oci_bind_by_name() doesn't support RAW and LONG RAW fields) Fixed bug #37055 (incorrect reference counting for persistent OCI8 connections) Fixed bug #36934 (OCILob->read() doesn't move internal pointer when reading 0's) Fixed bug #36851 (Documentation and code discrepancies for NULL data) Fixed bug #36820 (Privileged connection with an Oracle password file fails) 1.2.0 1.2.0 stable stable 2006-03-16 PHP Changed OCI8 code to use OCIServerVersion() instead of OCIPing(), which may crash Oracle server of version < 10.2 Fixed bug #36235 (ocicolumnname returns false before a successful fetch) Fixed bug #36096 (oci_result() returns garbage after oci_fetch() failed) Fixed bug #36055 (possible OCI8 crash in multithreaded environment) Fixed bug #36010 (Segfault when re-creating and re-executing statements with bound parameters) Fixed PECL bug #5571 (oci_new_connect() not closed by oci_close()) Fixed bug #33383 (crash when retrieving empty BLOBs) 1.1.1 1.1.1 beta beta 2005-09-22 PHP Fixed segfault when binding empty values. Fixed problem with oci_error() without arguments. 1.1 1.1 beta beta 2005-09-07 PHP This release fixes a huge amount of bugs and adds support of statement caching, external credentials etc. See official announce for details. 1.0 1.0 beta beta 2004-03-19 PHP package.xml added to support installation using pear installer