「PerlでOracleにアクセスするための方法」

 RubyOracleに接続する方法は調べたので、次にPerlOracleに接続する方法を調べてみました。以下のアプリケーションをすでにインストールしているものとします。

  • Oracle Client 10g
  • ActivePerl v.5.8.8

必要なライブラリ

DBD-Oracleのインストール

コマンドプロンプトから以下のコマンドを実行します。

ppm install DBD-Oracle

perlサンプルプログラム

 Oracleに接続して、EMPテーブルからレコードを取得する。取得したレコードはカンマ区切りで表示する。

use DBI;

$hDb = DBI->connect("dbi:Oracle:orcl", "scott", "tiger"); 
$hSt = $hDb->prepare("select * from emp");
$rows = $hSt->execute;
while($row = $hSt->fetchrow_arrayref) {
    print join(",", @$row), "\n";
}
$hSt->finish;
$hDb->disconnect;

注意事項

 今回Windowsで実行しましたが、ORACLE_HOMEとNLS_LANGの設定がされていないとエラーになる可能性があります。Oracleクライアントがちゃんとインストールされていれば、レジストリに書かれていると思いますが、無い場合には要設定。

個人的な感想

 Rubyに比べてコードに違和感があるのは、慣れの問題ですかね。Rubyも詳しいわけじゃないですが、Rubyの方がよりスッキリしている感じはします。
 PerlRuby同様に簡単に書けるのは良いです。エラー処理などを無視すれば、これだけでテーブルのデータを取得できますから。