Ошибка ORA-12505: TNS: слушатель в настоящее время не знает SID, указанный в дескрипторе соединения Laravel 5.8 Yajra - PullRequest
0 голосов
/ 22 апреля 2020

Я получаю следующую ошибку Yajra \ Pdo \ Oci8 \ Exceptions \ Oci8Exception ORA-12505: TNS: слушатель в настоящее время не знает SID, указанный в дескрипторе соединения

Я хочу подключиться к Laravel 5.8.38 - Oracle (удаленно), и я не уверен, как выполнить настройку, используя имя службы

Sql Конфигурация разработчика

'connections' => [
    'oracle' => [
        'driver' => 'oracle',
        'host' => '192.168.0.190',
        'port' => '1521',
        'database' => 'BDDESARR',
        'service_name' => '???',
        'username' => 'PAT_GUZ',
        'password' => 'ujUYjjdk',
        'charset' => '',
        'prefix' => '',
    ],

Установка Yajra, следуя шаг за шагом от https://github.com/yajra/laravel-oci8/tree/5.8

Терминальный вывод

PS C:\wamp64\www\desarrollo\php\laravel\miproyect> composer require yajra/laravel-oci8:"5.8.*"
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Package jakub-onderka/php-console-color is abandoned, you should avoid using it. Use php-parallel-lint/php-console-color instead.
Package jakub-onderka/php-console-highlighter is abandoned, you should avoid using it. Use php-parallel-lint/php-console-highlighter instead.
Writing lock file
Generating optimized autoload files

Файл config / database. php

'default' => env('DB_CONNECTION', 'oracle'),
'connections' => [
    'oracle' => [
        'driver' => 'oracle',
        'host' => '192.168.0.190',
        'port' => '1521',
        'database' => 'BDDESARR',
        'service_name' => '???',
        'username' => 'PAT_GUZ',
        'password' => 'ujUYjjdk',
        'charset' => '',
        'prefix' => '',
    ],

Дополнительная информация, я сделал следующий код, и он успешно работает

  <?php

$conn = oci_connect('PAT_GUZ', 'ujUYjjdk', '192.168.0.190/BDDESARR');
if (!$conn) {
    $e = oci_error();
    var_dump($e);
}

$stid = oci_parse($conn, 'SELECT * FROM MY_TABLE');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";
  • Laravel 5.8 .38

  • PHP 7.3.12

  • Oracle: Oracle База данных 11g Enterprise Edition, выпуск 11.2.0.4.0 -
    64 бит Производство

  • Windows 10 64 бит

  • Wamp64

1 Ответ

0 голосов
/ 23 апреля 2020

Я ничего не знаю о Laravel, Яджре и других вещах, о которых вы упомянули, но это:

'database' => 'BDDESARR',
'service_name' => '???',

выглядит, если не неправильно тогда подозрительно . SQL Связь разработчика предполагает, что Service name = 'bddesarr'. Я не знаю, что такое «база данных». SID, возможно, поскольку Oracle жалуется, что SID не прав.

...