我有php项目上运行的php版本8.1,安装在本地服务器ubuntu 20.4,在服务器上有oracle 9 i,我已经安装oracle即时客户端和imtrting连接php项目到oracle数据库,我想从oracle数据库读取数据
我还安装了Oracle Instant Client 19.9
$user = "myusername";
$password = "mypassword";
$ODBCConnection = odbc_connect("Driver={Devart ODBC driver for Oracle};Direct=true;Host=myhost;Port=myport;Service Name=myservicename;User ID=myuserid;password=mypassword", $user, $password);
但我得到这个错误:
无法连接到数据库:ORA-03134:不再支持到此服务器版本的连接。已连接
如果我必须升级oracle,有没有其他的变通方法?
1条答案
按热度按时间3gtaxfhh1#
您将无法使用19 c客户端或任何比11 g更新的客户端连接到9 i服务器。你真的不应该在如此传统的东西上做新的开发。
但是如果你别无选择,你可以设置一个 passthrough 数据库。
为此:
1.选择一个可用的(或安装一个新的)11.2.0.4数据库(它不需要与您的客户端或目标9 i服务器并置)。
1.在11 g passthrough中创建数据库链接以连接到9 i数据库。
1.在您需要处理的每个表上创建视图(视图提供的功能比同义词更多),通过@databse链接指向9 i数据库。对于过程,同义词在大多数情况下都可以使用。
例如:
create view mytable as select * from mytable@my9ilink
create synonym myproc for myproc@my9ilink
1.现在将PHP程序与19 c客户端连接到11 g passthrough数据库,并与将重定向到9 i的视图/同义词进行交互。11 g可以与9 i和19 c都交谈,所以如果设置正确,这将工作。我不相信你能用21 c做这个; 19 c可能是你连接到11 g的终端版本。