Как мне подключиться к базе данных Oracle, используя имя сервиса? - PullRequest
3 голосов
/ 31 марта 2019

Я пытаюсь подключиться к внешней базе данных (не к моей базе данных localhost).

Мои данные для входа (конечно, составлены).Я использую эти данные для успешного входа в систему с помощью sql-разработчика oracle.

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

login-script.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.Однако я не уверен в синтаксисе имени службы.

1 Ответ

0 голосов
/ 31 марта 2019

Чтобы добавить название услуги, мне нужно изменить $db на:

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