使用 Perl 连接到 Vertica
可以使用 Perl DBI 模块的 connect
函数连接到 Vertica。此函数使用必需的数据源字符串参数,以及用于用户名、密码和连接属性的可选参数。
数据源字符串必须以 "dbi:ODBC:" 开头,以指示 DBI 模块使用 DBD::ODBC 驱动程序来连接到 Vertica。该字符串的剩余部分由 DBD::ODBC 驱动程序解释。该字符串通常包含 DSN 的名称(包含连接到 Vertica 数据库所需的连接信息)。例如,若要指示 DBD::ODBC 驱动程序使用名为 VerticaDSN 的 DSN,您应使用如下所示的数据源字符串:
"dbi:ODBC:VerticaDSN"
用户名参数和密码参数是可选的。但是,如果不提供这两个参数(或者仅提供免密码帐户的用户名)并且未在 DSN 中设置这两个参数,则连接尝试将始终失败。
connect
函数将在连接到 Vertica 后返回数据库句柄。如果未连接,则会返回 undef
。在这种情况下,您可以访问 DBI 模块的错误字符串属性 ($DBI::errstr
) 以获取错误消息。
注意
默认情况下,只要遇到错误,DBI 模块就会将错误消息输出到 STDERR。如果您倾向于显示自己的错误消息或以某种其他方式处理错误,您可能需要通过将 DBI 的 PrintError 连接属性设置为 false 来禁用这些自动消息。有关详细信息,请参阅设置 Perl DBI 连接属性。否则,用户可能会看到两条错误消息:一条是 DBI 自动输出的错误消息,另一条是脚本自己输出的错误消息。以下示例演示了使用名为 VerticaDSN 的 DSN 连接到 Vertica。对 connect
的调用提供了用户名和密码。连接后,此示例将调用数据库句柄的 disconnect
函数以关闭连接:
#!/usr/bin/perl -w
use strict;
use DBI;
# Open a connection using a DSN. Supply the username and password.
my $dbh = DBI->connect("dbi:ODBC:VerticaDSN","ExampleUser","password123");
unless (defined $dbh) {
# Conection failed.
die "Failed to connect: $DBI::errstr";
}
print "Connected!\n";
$dbh->disconnect();