【问题标题】:How do I connect to oracle database using a service name?如何使用服务名称连接到 oracle 数据库?
【发布时间】:2019-08-21 13:39:41
【问题描述】:

我正在尝试连接到外部数据库(不是我的本地主机数据库)。

我的登录详细信息是(当然是虚构的详细信息)。我使用这些登录详细信息使用 oracle 的 sql developer 成功登录。

Username: COOLDB123
Password: ThisIsADB123
Hostname: oracle.mywebsite.com
Port: 1521
Service name (NOT SID, I don't use a SID): pdb.oracle.mywebsite.com 

登录脚本.php

<?php
    $db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle.mywebsite.com)(PORT = 1521)))(CONNECT_DATA=(SID=pdb.oracle.mywebsite.com)))" ;

    if($c = OCILogon("COOLDB123", "ThisIsADB123", $db))
    {
        echo "Successfully connected to Oracle.\n";
        OCILogoff($c);
    }
    else
    {
        $err = OCIError();
        echo "Connection failed.";
    }
?>

但是,我得到了错误:

Warning: ocilogon(): ORA-01017: invalid username/password; logon denied in C:\xampp\htdocs\test.php on line 4
Connection failed.

我知道细节是正确的,因为我可以使用 Oracle 的 SQL 开发人员登录到我的数据库。我究竟做错了什么?我怀疑在我的$db 部分中,我使用的是SID 而不是服务名称。但是,我不确定服务名称的语法。

【问题讨论】:

    标签: php sql database oracle oracle-sqldeveloper


    【解决方案1】:

    要添加服务名称,我必须将$db 更改为:

    $db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle.mywebsite.com)(PORT = 1521)))(CONNECT_DATA=(SERVICE_NAME=pdb.oracle.mywebsite.com)))" ;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-15
      • 1970-01-01
      • 2011-06-17
      • 2017-01-26
      • 2019-12-07
      相关资源
      最近更新 更多