以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
| 定数 | 説明 | 
|---|---|
| OCI_ASSOC | oci_fetch_all() と oci_fetch_array() で結果を連想配列で取得するために使います。 | 
| OCI_BOTH | oci_fetch_all() と oci_fetch_array() で結果を配列と連想配列の両方で取得するために使います。 | 
| OCI_COMMIT_ON_SUCCESS | oci_execute() のステートメント実行モード。 ステートメントが成功したときに、自動的に変更をコミットします。 | 
| OCI_CRED_EXT | oci_connect() と組み合わせ、 Oracles の External 認証あるいは OS 認証を利用します。 | 
| OCI_DEFAULT | OCI_NO_AUTO_COMMITを参照ください。 | 
| OCI_DESCRIBE_ONLY | oci_execute() のステートメント実行モード。 このモードをは、カラム名などのメタデータは欲しいけれど クエリから行を取得したくないという場合に使います。 | 
| OCI_EXACT_FETCH | 現在はサポートされていません。文の取得モードを指定します。 アプリケーションがあらかじめ何行取得すればよいか分かっている場合に使います。 このモードは Oracle リリース 8 以降ではプリフェッチ機能をオフにします。 カーソルは希望する行を取得した後キャンセルされ、 サーバー側のリソースの使用は軽減されます。 | 
| OCI_FETCHSTATEMENT_BY_COLUMN | oci_fetch_all() のデフォルトのモード。 | 
| OCI_FETCHSTATEMENT_BY_ROW | oci_fetch_all() でのもうひとつのモード。 | 
| OCI_LOB_BUFFER_FREE | 使用されたバッファを解放するために OCILob::flush と併用します。 | 
| OCI_NO_AUTO_COMMIT | oci_execute() のステートメント実行モード。
           このモードでは、トランザクションの自動コミットは行われません。
           コードの可読性を考慮して、今までの OCI_DEFAULTではなくこちらを使うようにしましょう。 | 
| OCI_NUM | oci_fetch_all() と oci_fetch_array() で結果を配列で取得するために使います。 | 
| OCI_RETURN_LOBS | oci_fetch_array() でディスクリプタの代わりに LOB の値を取得するために使います。 | 
| OCI_RETURN_NULLS | oci_fetch_array()
           でフィールド値が nullの場合に空の配列要素を取得するために使います。 | 
| OCI_SEEK_CUR | OCILob::seek でシーク位置を設定するために使います。 | 
| OCI_SEEK_END | OCILob::seek でシーク位置を設定するために使います。 | 
| OCI_SEEK_SET | OCILob::seek でシーク位置を設定するために使います。 | 
| OCI_SYSDATE | サポートされなくなりました。 | 
| OCI_SYSDBA | oci_connect() で、SYSDBA として接続するために使います。 php.ini 設定 oci8.privileged_connect を有効にしないと使えません。 | 
| OCI_SYSOPER | oci_connect() で、SYSOPER として接続するために使います。 php.ini 設定 oci8.privileged_connect を有効にしないと使えません。 | 
| OCI_TEMP_BLOB | 一時的な BLOB が生成されるよう明示的に指定するため OCILob::writeTemporary と併用します。 | 
| OCI_TEMP_CLOB | 一時的な CLOB が生成されるよう明示的に指定するため OCILob::writeTemporary と併用します。 | 
| 定数 | 説明 | 
|---|---|
| OCI_DTYPE_FILE | このフラグは oci_new_descriptor() に新しい FILE ディスクリプタを初期化するように伝えます。 | 
| OCI_DTYPE_LOB | このフラグは oci_new_descriptor() に新しい LOB ディスクリプタを初期化するように伝えます。 | 
| OCI_DTYPE_ROWID | このフラグは oci_new_descriptor() に新しい ROWID ディスクリプタを初期化するように伝えます。 | 
| OCI_D_FILE | OCI_DTYPE_FILEと等価です。 | 
| OCI_D_LOB | OCI_DTYPE_LOBと等価です。 | 
| OCI_D_ROWID | OCI_DTYPE_ROWIDと等価です。 | 
| 定数 | 説明 | 
|---|---|
| OCI_FO_ABORT(int) | フェイルオーバーは失敗し、リトライのオプションもありません | 
| OCI_FO_BEGIN(int) | フェイルオーバー処理が接続の切断を検知し、 フェイルオーバー処理が開始されています。 | 
| OCI_FO_END(int) | フェイルオーバーは成功しました | 
| OCI_FO_ERROR(int) | フェイルオーバーは失敗しましたが、
     アプリケーションにはエラーを処理し、 OCI_FO_RETRYを返してフェイルオーバーを再試行するチャンスがあります。 | 
| OCI_FO_NONE(int) | ユーザーがフェイルオーバーのタイプを要求していません | 
| OCI_FO_REAUTH(int) | Oracle のユーザーが再認証されました | 
| OCI_FO_RETRY(int) | Oracle がフェイルオーバーを再試行すべきです。
     新しい接続へのフェイルオーバー中にエラーが発生した場合、
     TAF はフェイルオーバーを再試行できます。
     通常、アプリケーションコードは OCI_FO_RETRYを返す前に
     しばらく待機する必要があります。 | 
| OCI_FO_SELECT(int) | ユーザーは SELECT のフェイルオーバーも要求しています。 これにより、開いているカーソルを持つユーザーは、 障害発生後もそのカーソルからのフェッチを継続できます。 | 
| OCI_FO_SESSION(int) | ユーザーはセッションのフェイルオーバーのみを要求しています。 例えば、ユーザーの接続が切断された場合、 バックアップサーバー上でそのユーザー向けに新しいセッションが自動的に作成されます。 このタイプのフェイルオーバーでは、SELECT 文の回復は試みられません。 | 
| OCI_FO_TXNAL(int) | ユーザーがトランザクションのフェイルオーバーを要求しました | 
