Linux中国  设为主页
 收藏本站
 
当前位置: > 首页 ->数据库应用 ->DB2 ->通过Perl 编程访问DB2数据库
  相关分类: 
Access
DB2
Mysql
Oracle
PostgreSQL
SQL Server
Sybase
其他数据库
  站内搜索: 
热门文章排行
热门文章排行 老手论道:DB2数据库部分日常实用操(04-23)
DB2数据库的数据复制技术简单概述(04-17)
DB2中几种遇到的SQL1032N出错的解决(04-17)
浅谈DB2数据库的故障处理及最佳实践 (04-23)
教你使用SQL查询DB2 9中的XML数据(04-17)
精采文章排行
精采文章排行 实例之Visual C#中实现DB2数据库的编(06-29)
IBM称DB2 9已解决电子病历核心技术瓶(06-29)
3条规则帮你迅速提高DB2 Web的程序性(06-29)
如何为SAP安装多个DB2 9数据库服务器(06-29)
Windows系统下安装DB2通用数据库企业(06-29)
  ·3条规则帮你迅速提高DB2 Web的程序性能 ·如何为SAP安装多个DB2 9数据库服务器 ·Windows系统下安装DB2通用数据库企业版 ·DB2无限活动日志策略从介绍到实用技巧 ·DB2数据库下如何提高IMPORT命令的性能 ·了解DB2数据库优化需掌握几条基本策略 ·教你如何读取Excel数据并导入DB2数据库 ·实例之Visual C#中实现DB2数据库的编程 ·常见数据库系统之比较 - DB2数据库

通过Perl 编程访问DB2数据库

作者:Marina Greenstein    来源:IBM DW中国   点击:   日期:2007-04-22 [收藏] [投稿]

  IE是否经常中毒?推荐您

在本文中,我们将学习怎么样编写简单的 Perl 程序来提取或操作 IBM® DB2® Universal Database™(DB2 UDB)中存储的数据。我们将从一个简单的任务入手:从数据库中选择一行数据放入一个 Perl 程序中;接着逐步介绍一些高级主题,包括处理大对象和调用存储过程。

简介

Perl(Practical Extraction and Report Language)是一种功能强大而又非常简单易用的编程语言,在很多操作系统上都可以使用。Perl 是免费的。我们可以(以源代码或二进制的格式)下载这个语言,并可以免费地使用它。

Perl 日渐成为一种广受欢迎的语言。它包含了 C 编程语言的特性,以及 UNIX® 中的一些命令,例如 awksed。Perl 是一种解释语言,可以在单独的应用程序中使用,也可以与 Apache 一起来构建 Web 应用程序。

我们可以使用 Perl 快速操作来自文件或 RDBMS 的大型数据集。DBI 是在 Perl 脚本中连接 RDBMS 的标准,它是在 1994 年开始引入的。在 http://dbi.perl.org/ 站点上可以找到 DBI 驱动程序的源代码及其文档。

IBM 在 1992 年为 Perl 开发了 DB2 的驱动程序,并随着 DBI 规范的发展周期性地对其进行更新。这个驱动程序的最新版本(在撰写本文时)是 0.78。在 http://www.ibm.com/software/data/db2/perl/ 上可以找到主要的 DBD::DB2(这是 Perl 语言中采用的命名机制)驱动程序信息。

本文将展示怎么样编写简单的 Perl 程序来提取或操作 DB2 UDB 中存储的数据。我们将从一个简单的任务入手:从数据库中选择一行数据放入一个 Perl 程序中;接着逐步介绍一些高级主题,包括处理大对象和调用存储过程。

开始

图 1 展示了 Perl 环境怎么样与数据库环境进行交互:


图 1. Perl 环境
Perl 环境

正如可以从这个图中看出的,Perl 程序使用了一个标准的 API 来与 DBI(Perl 的数据库接口模块)进行通信。Perl DBI 模块只能支持动态 SQL。它定义了一组方法、变量和约定来提供一个与实际使用的数据库独立的一致数据库接口。DBI 为 API 提供了一个一致的接口,它可以适用于程序员想使用的任何数据库。DBD::DB2 是一个 Perl 模块,当与 DBI 一起使用时,它就可以让 Perl 与 DB2 UDB 进行通信。

因此,为了运行访问 DB2 数据库的 Perl 脚本,需要在系统上安装以下组件:

  • Perl 语言环境
  • DBI 驱动程序(可以用于任何 RDBMS)
  • DBD::DB2 驱动程序
  • DB2 Runtime Client
  • C 编译器
  • DB2 数据库服务器的连接信息

http://www.ibm.com/software/db2/perl/ 的 Web 站点上可以看到所有的安装配置指南。

连接到 DB2 数据库上

为了让 Perl 程序访问 DB2 数据库,需要建立到数据库的连接。为了让 Perl 加载 DBI 模块,需要在 Perl DB2 应用程序中包含下面的内容:

use DBI;

当使用 DBI->connect 语句(语法如下)来创建一个数据库句柄 时,DBI 模块会自动加载 DBD::DB2 驱动程序。


清单 1. 创建数据库句柄

use DBI;

$dbh = DBI->connect (“dbi:DB2:dbalias", $UserId, $password);

其中:

$dbh —— 表示 connect 语句所返回的数据库句柄
dbalias —— 表示分类进 DB2 数据库目录中的 DB2 别名
$userID —— 表示用来连接数据库的用户 ID
$password —— 表示这个用户 ID 的密码

清单 2 展示了一个简单的 Perl 程序,它建立到数据库 SAMPLE 的连接,并返回今天的日期。这个程序执行一条动态生成的 DB2 SQL 语句,从数据库中获取 CURRENT DATE。它使用 DBI -> bind_col 方法将数据库中的值传递到一个本地变量中,稍后我们就会讨论这个问题。


清单 2. 连接到数据库上并执行语句

#!/usr/local/bin/perl -w
  use DBI;
  use strict;  
# Open a connection 
  my $dbh = DBI->connect("dbi:DB2:sample", “DB2ADMIN", “db2admin“, {RaiseError => 1});
# use VALUES to retrieve value from special register
  my $stmt = "Values CURRENT DATE";
  my $sth = $dbh->prepare($stmt);
  $sth->execute();
# associate variables with output columns...
  my $col1;
  $sth->bind_col(1,\$col1);
  while ($sth->fetch) { print "Today is: $col1\n"; }
  $sth->finish();
  $dbh->disconnect();

错误处理 —— SQLCODE 和 SQLSTATE

为了返回与某个 Perl DBI 数据库句柄或语句句柄相关的 SQLSTATE,可以调用

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页12 3 4 5 6 下一页

上一篇:基于DB2的数据库应用系统的性能优化   下一篇:IBM DB2数据库日常维护小常识
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论

   相关文章:
·IBM称DB2 9已解决电子病历核心技术瓶颈

   文章评论:(1条)
  
 请留名: 匿名评论   点击查看所有评论 论坛讨论
 

 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。