Engineering Note

プログラミングなどの技術的なメモ

PerlからOracle Database 12c Release 2(12.2.0.1)への接続設定

oracle 12c

本記事は、PerlからOracle Database 12c Release 2(12.2.0.1.0)へDBI及びDBDを利用して接続するための設定メモになります。

  

 

事前準備

事前準備として、前回インストールしたLinux環境(CentOS7)上のOracle Database 12c Release 2(12.2.0.1.0)のPDBを利用します。

 

 

 

 

またPHPから接続する際に利用したOracle Instant Clientもインストールしておきます。

 

 

パッケージのダウンロード

DBD::Oracleのダウンロード

以下のmetacpan(メタシーパン)からDBD-Oracleのtar.gzファイルをダウンロードします。

  

 

 

perl-DBIをインストール

まずyumからperl-DBIperl-ExtUtils-MakeMakerをインストールします。

 

 > yum -y install perl-DBI \
 perl-ExtUtils-MakeMaker

  

DBD-Oracleをインストール

次にDBD-Oracleをインストールします。

 

 # Oracle Instant Clientの環境変数を設定
 > export ORACLE_HOME='/usr/lib/oracle/12.2/client64'
 > export C_INCLUDE_PATH='/usr/include/oracle/12.2/client64'
 > export LD_LIBRARY_PATH='/usr/lib/oracle/12.2/client64/lib'
 > tar xvf DBD-Oracle-1.80.tar.gz
 > cd DBD-Oracle-1.80
 > perl Makefile.PL -m /usr/share/oracle/12.2/client64/demo/demo.mk
 > make
 > make install
 # manコマンドで確認
 > man DBD::Oracle

 

PerlからOracle Databaseに接続

準備が整ったので、以下のPerlテストコードからDBに接続してみます。

使用するDBは前回作成したPDB1になります。

事前にインスタンスとリスナーも起動しておきます。

 

# test_con.pl
#!/usr/bin/perl

use DBI;
use strict;

my $dbh = DBI->connect('dbi:Oracle://localhost:1521/pdb1', 'ora01', 'oracle');
my $sql = "SELECT * FROM Test ORDER BY ID";
my $sth = $dbh->prepare($sql);
$sth->execute();

while (my @arr = $sth->fetchrow) {
    print "ID\tNAME\n";
    print "$arr[0]\t$arr[1]\n";
}
$sth->finish();
$dbh->disconnect();

 

上記のスクリプトを実行します。

 

 > perl test_con.pl 
 ID      NAME
 1       hoge

 

無事接続できたことが確認できました。

 

最後に

今回はPerlからOCI8を使用してOracle Database 12c Release 2へ接続する方法について学びました。

次回からはPythonからOracle Database 12c Release 2へ接続するための設定について学んでいきます。