从今天开始起从头学习Perl的DBI编程, 先接触到的是DBI中的数据库驱动(Driver)对象, 有三个函数可以调用: avaialable_drivers, data_sources和connect. connect是用来连接到数据库的, avaialable_drivers是用来看你所安装的Perl支持那几种数据库. 如下面的代码:
#!/usr/bin/perl -w
#
use DBI;
my @drvlist = DBI->available_drivers();
foreach my $drvname (@drvlist)
{
print ("$drvname\n");
}
在运行后输出的结果是:
ExampleP
Oracle
Proxy
data_sources函数是用来列出有那些数据库可以连接的,如下面的代码:
#!/usr/bin/perl -w
#
use DBI;
my @tnslist = DBI->data_sources("Oracle");
foreach my $tns (@tnslist)
{
print ("$tns\n");
}
在运行后输出的结果是:
dbi:Oracle:test8i
dbi:Oracle:test9i
dbi:Oracle:test10g
其中test8i, test9i和test10g是在tnsnames.ora中定义的连接字符串. 不过在DBD Oracle v1.19的版本中, 数据源的格式可以有几种了, 这个data_sources函数已经变得没有什么意义了. 如下所示:
dbi:Oracle:host=localhost;port=1521;sid=test8i;
dbi:Oracle:(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP) (HOST=localhost) (PORT=1521)) (CONNECT_DATA=(SID=test8i)))
dbi:Oracle:localhost:1521/test8i
上面的最后一种方法只在10g的客户端下有效.