(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)
oci_set_edition — 設定資料庫版本
設定後續連線所使用的物件的資料庫「版本」。
Oracle 版本允許應用程式的並行版本使用相同的綱要和物件名稱來執行。這對於升級線上系統很有用。
在呼叫 oci_set_edition() 之前呼叫 oci_connect()、oci_pconnect() 或 oci_new_connect()。
如果設定的版本在資料庫中無效,即使 oci_set_edition() 返回成功,連線也會失敗。
使用持久連線時,如果已存在具有請求版本設定的連線,則會重複使用該連線。否則,會建立不同的持久連線。
edition
先前使用 SQL 指令「CREATE EDITION
」建立的 Oracle 資料庫版本名稱。
範例 #1 兩個腳本可以同時使用不同版本的 myfunc()
<?php
// 檔案 1
echo "應用程式版本 1\n";
oci_set_edition('ORA$BASE');
$c = oci_connect('hr', 'welcome', 'localhost/XE');
$s = oci_parse($c, "begin :r := myfunc(); end;");
oci_bind_by_name($s, ":r", $r, 20);
oci_execute($s);
echo "結果為 $r\n";
?>
<?php
// 檔案 2
echo "應用程式版本 2\n";
oci_set_edition('E1');
$c = oci_connect('hr', 'welcome', 'localhost/XE');
$s = oci_parse($c, "begin :r := myfunc(); end;");
oci_bind_by_name($s, ":r", $r, 20);
oci_execute($s);
echo "結果為 $r\n";
?>
注意:Oracle 版本需求
此函式從 Oracle 11gR2 開始提供。
為避免不一致和意外錯誤,請勿在持續性連線上使用 ALTER SESSION SET EDITION 來更改版本。
在 Oracle 11.2.0.1 中使用版本和 DRCP 時,為避免不一致和意外錯誤,請保持 oci8.connection_class 與應用程式使用的版本名稱之間一對一的對應關係。每個指定連線類別的池化伺服器只能與一個版本一起使用。此限制已在 Oracle 11.2.0.2 中移除。