不使用 DSN 从 Perl 进行连接
如果不想为数据库设置数据源名称 (DSN),您可以在数据源字符串中提供 Perl 的 DBD::ODBC 驱动程序连接到 Vertica 数据库所需的所有信息。此源字符串必须包含 DRIVER=
参数,以向 DBD::ODBC 说明应使用哪个驱动程序库进行连接。此参数的值是客户端系统的驱动程序管理器分配给驱动程序的名称。
-
在 Windows 上,驱动程序管理器分配给 Vertica ODBC 驱动程序的名称是 Vertica。
-
在 Linux 和其他类 UNIX 操作系统上,Vertica ODBC 驱动程序的名称在系统的
odbcinst.ini
文件中分配。例如,如果/etc/odbcint.ini
包含以下内容:[Vertica] Description = Vertica ODBC Driver Driver = /opt/vertica/lib64/libverticaodbc.so
您应使用名称 Vertica。有关
odbcinst.ini
文件的详细信息,请参阅为 Linux 创建 ODBC DSN。
可以在字符串中利用 Perl 的变量扩展,以将变量用于大部分连接属性,如以下示例所示。
#!/usr/bin/perl
use strict;
use DBI;
my $server='VerticaHost';
my $port = '5433';
my $database = 'VMart';
my $user = 'ExampleUser';
my $password = 'password123';
# Connect without a DSN by supplying all of the information for the connection.
# The DRIVER value on UNIX platforms depends on the entry in the odbcinst.ini
# file.
my $dbh = DBI->connect("dbi:ODBC:DRIVER={Vertica};Server=$server;" .
"Port=$port;Database=$database;UID=$user;PWD=$password")
or die "Could not connect to database: " . DBI::errstr;
print "Connected!\n";
$dbh->disconnect();