Как я могу проверить соединение с оракулом DB 12C с помощью сценария Perl - PullRequest
1 голос
/ 30 октября 2019

У меня есть oracle db 12c, работающее в контейнере. Я пытаюсь проверить подключение к oracle db, используя скрипт perl, запущенный в другом контейнере, используя следующий код

#!/usr/bin/perl
use DBI;

$\="\n";

print "Connecting to DB..";


my $dbh = DBI->connect('dbi:Oracle:ORCLCDB',  'books_admin', 'MyPassword') or
          die "Cannot connect to DB => " . DBI->errstr;

, где books_admin - это мое имя пользователя, а MyPassword - мой пароль. ORCLCDB - это имя моей базы данных. Но когдая запустил этот скрипт, я получаю следующую ошибку

"ORA-12154: TNS:could not resolve the connect identifier specifiedenter"

Это мое место tnsname.ora в контейнере perl.

ORAC =
 (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1522))
(CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = ORCLCDB)
)
 )

LISTENER_ORAC =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1522))

1 Ответ

2 голосов
/ 31 октября 2019

Ref. doc : "Если база данных определена в файле TNSNAMES.ORA, вы можете использовать имя службы, указанное в файле."

Например: $dbh = DBI->connect('dbi:Oracle:host=foobar;sid=DB;port=1521', 'scott/tiger', '');

Сервисный идентификатор ORAC относится к вашей записи tnsnames.ora.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...