Est-ce que quelqu'un a eu du succès avec ça? Il n'y a pas beaucoup de références en ligne et j'ai épuisé tous les résultats pertinents sur Google. Voici mon script:Connexion à Teradata via Perl
#!/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);
Le message d'erreur:
DBI connect('192.168.1.0','user',...) failed: (no error string) at ./teradata.pl line 13
Les deux lignes qui sont commentées à des restes de mes tentatives infructueuses précédentes pour connecter à la DB.
MISE À JOUR: Voici les efforts précédents que j'ai faits avec le module DBD.
#!/usr/bin/perl
use DBI;
$user = "xxxx";
$pw = "xxxx";
my $dbh = DBI->connect("dbi:Teradata:tdsn", $user, $pw);
Erreur:
DBI connect('tdsn','xxxx',...) failed: Unable to get host address. at ./teradata.pl line 12
Deuxième tentative:
#!/usr/bin/perl
use DBI;
$user = "xxxx";
$pw = "xxxx";
my $dbh = DBI->connect("dbi:Teradata:192.168.1.0", $user, $pw);
Erreur:
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
troisième ...
#!/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=
Erreur:
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
Le module DBI fournit-il une interface pour Teradata? Utilisez le module 'DBD :: Teradata' à la place – Rahul
J'ai déjà essayé mais ce module est obsolète pour ma version de Teradata. Me donne une erreur à propos des informations d'identification obsolètes. – SemperFly
Eh bien, je ai juste googlé un peu et a constaté que presque tout le monde n'était pas réussi avec DBI OU DBD :: ODBC pour Teradata. Un autre que je peux suggérer est que ... essayez avec le pilote Teradata ODBC qui vient avec le client Teradata et voyez s'il vous permet de passer par – Rahul