【发布时间】:2020-04-22 20:46:50
【问题描述】:
我收到以下错误 Yajra\Pdo\Oci8\Exceptions\Oci8Exception ORA-12505: TNS:listener does not now know of SID given in connect descriptor
我想要的是能够将 Laravel 5.8.38 连接到 Oracle(远程),但我不确定如何使用 服务名称 进行设置
'connections' => [
'oracle' => [
'driver' => 'oracle',
'host' => '192.168.0.190',
'port' => '1521',
'database' => 'BDDESARR',
'service_name' => '???',
'username' => 'PAT_GUZ',
'password' => 'ujUYjjdk',
'charset' => '',
'prefix' => '',
],
从https://github.com/yajra/laravel-oci8/tree/5.8一步一步安装Yajra
终端输出
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 企业版版本 11.2.0.4.0 -
64位制作Windows 10 64 位
Wamp64
【问题讨论】:
-
所以如果监听器不知道请求的 SID,那么我们需要看看监听器知道什么。在数据库服务器上,作为 oracle 安装的所有者,执行命令“lsnrctl status”。更新您的开篇帖子以显示结果。
标签: laravel oracle oracle-call-interface