本記事は、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ファイルをダウンロードします。
- DBD-Oracle-1.80.tar.gz
perl-DBIをインストール
まずyumからperl-DBIとperl-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へ接続するための設定について学んでいきます。