Perl+Oracle - не удается подсоединиться к БД

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

Ответить
Linka
Сообщения: 2
Зарегистрирован: 04 апр 2005, 12:18

У меня Windows XP, Oracle8i, ActivePerl 5.6.1 с установленными модулями DBI и DBD::Oracle версии 1.12.
Код такой:

#!d:/perl/bin/perl -w
#

print "Content-type: text/html\n\n";
use strict;
use DBI;
use DBD::Oracle;

my $user = 'user';
my $pwd = 'password';
my $dbn = 'dbi:Oracle:db_name';

$dbh = DBI->connect($dbn,$user,$pwd,{ RaiseError => 1, AutoCommit => 0 }) or die "\nCan't connect to oracle.\n";

Результат выполнения - ошибка: (из error.log)
[Mon Apr 04 15:51:08 2005] [error] [client 127.0.0.1] Use of uninitialized value in concatenation (.) or string at d:/Perl/site/lib/DBI.pm line 576.

[Mon Apr 04 15:51:08 2005] [error] [client 127.0.0.1] DBI connect('db_name','user',...) failed: at \home\LOCALH~1\cgi-bin\test.pl line 29

Почему возникает ошибка и как ее исправить?
Заранее спасибо
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

Linka,
В Оракле точно есть пользователь user?
У него пароль утановлен - password?

База Данных db_name точно существует? (Use of uninitialized value in concatenation) - наверное проблема в этом.
vga
Сообщения: 9
Зарегистрирован: 16 авг 2004, 15:39
Откуда: Saint-Petersburg
Контактная информация:

Рабочий пример из-под FreeBSD:
#!/usr/bin/perl
print qq(Content-Type: text/html\n\n) ;
&parse_form;
## Connect with DataBase ##########################
use DBI;
use DBD::Oracle;

$ENV{ORACLE_HOME} = '/home/oracle7';
$ENV{NLS_LANG} = 'AMERICAN_AMERICA.CL8MSWIN1251' ;

$dbh = DBI->connect('dbi:Oracle:BILL','user1', 'pass1') or die "$DBI::errstr\n";

$sth = $dbh->prepare("use BILL");
$sth->execute;
if ($DBI::errstr ne '')
{
print "$DBI::errstr";
}
---
Best regards,
vga
Linka
Сообщения: 2
Зарегистрирован: 04 апр 2005, 12:18

В Оракле точно есть пользователь user?
У него пароль утановлен - password?

База Данных db_name точно существует? (Use of uninitialized value in concatenation) - наверное проблема в этом.
Я точно создала базу данных, пользователя с паролем тоже. Через PLSQL Developer по крайней мере подключаюсь нормально. Может быть версии модулей не подходят?
Ответить