学习Perl DBI -- Database Driver

    从今天开始起从头学习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的客户端下有效.

发表留言:

« Previous | Main | Next »

英语900句 | English 900

  • Yes, I've just come back from Scotland.
  • 是的, 我刚从苏格兰回来.
  • How did you get there?
  • 你怎么去的?
  • I got there by plane.
  • 我坐飞机去的.
  • Where did you visit?
  • 你去参观了哪些地方?
  • I only had time to visit Edinburgh.
  • 我只有时间去爱丁堡.