折雨的天空

新浪微薄腾讯微薄

最新碎语:最近霉到了住。哎。。。

您的位置:折雨的天空 >php开发> PHP连接Oracle,服务器只支持SID时,报ora-12514错误的解决

PHP连接Oracle,服务器只支持SID时,报ora-12514错误的解决

首先说明,PHP官方手册就有解决方案,只是不太好找。


遇到问题:

oracle服务器只支持sid的方式连接,在sqldevelpoer里面连接的时候,不能选服务,只能选sid。

选服务报ora-12514错误。

PHP连接,通常使用手册中说明的的easyconnect串的方式连接,如:

192.168.1.1:1521/orcl
如果是支持SID连接的时候,就会报错,Ora-12514。

解决方案:

[#zeyu#]

PHP手册中,对connect_string有这样的描述,

包含要连接的 Oracle 实例。可以是 » Easy Connect 串,或是 tnsnames.ora 文件中的连接名,或是本地 Oracle 实例名。


在手册评论中,接近末尾为一段话:

I started getting "ORA-12514: TNS:listener does not currently know of service requested in connect descriptor" errors when I upgraded my database instance from 10.2 to 11.2.  For some reason it would not resolve the oci_connect calls with the Easy Connect syntax (easy connect calls from sqlplus were fine).  I was able to workaround the issue by passing a tns connect string: 

<?php 
$db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XX.XXX)(PORT = 1521)))(CONNECT_DATA=(SID=XXXX)))"; 

$c1 = oci_connect("name","password",$db); 
?>

[/#zeyu#]


经测试,此方法可行。


------------正 文 已 结 束, 感 谢 您 的 阅 读 (折雨的天空)--------------------

转载请注明本文标题和链接:《PHP连接Oracle,服务器只支持SID时,报ora-12514错误的解决

奖励一下

取消

分享不易,烦请有多多打赏,如您也困难,点击右边关闭即可!

扫码支持
扫码打赏,5元,10元,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

-秒后自动关闭,如已打赏,或者不愿打赏,请点击右上角关闭图标。

发表评论

路人甲 表情
看不清楚?点图切换