【发布时间】:2011-09-25 08:53:52
【问题描述】:
有人在这方面取得了成功吗?网上没有很多参考资料,我已经用尽了谷歌上的所有相关结果。这是我的脚本:
#!/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
【问题讨论】:
-
DBI 模块是否为 Teradata 提供接口?改用
DBD::Teradata模块 -
我已经尝试过了,但该模块对于我的 Teradata 版本来说已经过时了。给我一个关于不推荐使用的登录凭据的错误。
-
好吧,我只是用谷歌搜索了一下,发现几乎每个人都没有对 Teradata 的 DBI 或 DBD::ODBC 感到满意。我可以建议的另外一个是......尝试使用 Teradata 客户端附带的 Teradata ODBC 驱动程序,看看它是否能让您通过
-
您使用的是什么版本的 DBD::ODBC 以及哪个 ODBC 驱动程序管理器。
标签: sql perl odbc teradata dbd