Подключение к Teradata через Perl - PullRequest
5 голосов
/ 29 июня 2011

Кто-нибудь имел успех с этим? В Интернете не так много ссылок, и я исчерпал все релевантные результаты в Google. Вот мой сценарий:

#!/usr/bin/perl

use DBI;
use DBD::ODBC;

$user = "user";
$pw = "pw";
$ip = "192.168.1.0"

#DBI->trace(DBD::ODBC->parse_trace_flags('odbconnection'));

#my $connect_attrs = { PrintError => 0, RaiseError => 1, AutoCommit => 1 };

my $dbh = DBI->connect("dbi:ODBC:$ip", $user, $pw);

Сообщение об ошибке:

DBI connect('192.168.1.0','user',...) failed: (no error string) at ./teradata.pl line 13

Две строки, которые закомментированы, остались от моих предыдущих бесплодных попыток подключения к БД.

ОБНОВЛЕНИЕ : Вот предыдущие усилия, которые я предпринял с модулем DBD.

#!/usr/bin/perl

use DBI;

$user = "xxxx";
$pw = "xxxx";

my $dbh = DBI->connect("dbi:Teradata:tdsn", $user, $pw);

Ошибка:

DBI connect('tdsn','xxxx',...) failed: Unable to get host address. at ./teradata.pl line 12

Вторая попытка:

#!/usr/bin/perl

use DBI;

$user = "xxxx";
$pw = "xxxx";

my $dbh = DBI->connect("dbi:Teradata:192.168.1.0", $user, $pw);

Ошибка:

DBI connect('192.168.1.0','xxxx',...) failed: Deprecated logons are not allowed by administrator.  Upgrade client software to latest version. at ./teradata.pl line 12

Третий ...

#!/usr/bin/perl

use DBI;
use DBD::ODBC;

$user = "xxxx";
$pw = "xxxx";

my $dbh = DBI->connect("dbi:ODBC:tdsn", $user, $pw);

.odbc.ini

[ODBC]
InstallDir              = /usr/odbc
Trace           = 0
TraceDll                = /usr/odbc/lib/odbctrac.so
TraceFile               = /home/xxxx/odbctrace.log
TraceAutoStop           = 0

[ODBC Data Sources]
default         = tdata.so
testdsn         = tdata.so

[default]
Driver          = /usr/odbc/drivers/tdata.so
Description             = Default DSN is Teradata 5100
DBCName         = **ip_addr**
LastUser                = DLPStats
Username                = xxxx
Password                = xxxx
Database                = MSS_TEMP
DefaultDatabase         = MSS_TEMP

[tdsn]
Driver=/usr/odbc/drivers/tdata.so
Description=Teradata running Teradata V1R5.2
DBCName=**ip_addr**
LastUser=
Username=xxxx
Password=xxxx
Database=
DefaultDatabase=

Ошибка:

DBI connect('tdsn','xxxx',...) failed: (no error string) at ./teradata.pl line 13

odbcinst.ini

[ODBC DRIVERS]
Teradata=Installed

[Teradata]
Driver=/usr/odbc/drivers/tdata.so
APILevel=CORE
ConnectFunctions=YYY
DriverODBCVer=3.51
SQLLevel=1

Ответы [ 2 ]

4 голосов
/ 29 июня 2011

Вам потребуется загрузить и установить модуль Teradata DBD .

1 голос
/ 30 июня 2011

$ ip не может быть IP-адресом.Это должно быть имя источника данных ODBC, которое известно вашему менеджеру драйверов ODBC.Нам нужно знать вашего менеджера водителя, чтобы помочь дальше.Предполагая, что это unixODBC, у вас будет файл odbcinst.ini, в котором должен быть указан драйвер teradata со строкой, указывающей на общий объект драйвера.Затем в файле odbc.ini вы создаете источник данных.

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