DBD::Oracleを使用して、Oracleからデータを取る。
リスト:test_dbd_oracle.pl
#!/usr/bin/env perl use DBD::Oracle; $ENV{ORACLE_HOME} = "/u01/app/oracle/product/11.2.0/xe"; $driver = 'Oracle'; $host = 'localhost'; $sid = 'xe'; $dbh = DBI->connect("dbi:$driver:host=$host;sid=$sid","hr","*****"); $sth = $dbh->prepare("select * from jobs"); $sth->execute; while(@row = $sth->fetchrow){ print "@row\n"; }
実行結果
$ ./test_dbd_oracle.pl AD_PRES President 20080 40000 AD_VP Administration Vice President 15000 30000 AD_ASST Administration Assistant 3000 6000 FI_MGR Finance Manager 8200 16000 FI_ACCOUNT Accountant 4200 9000 AC_MGR Accounting Manager 8200 16000 AC_ACCOUNT Public Accountant 4200 9000 SA_MAN Sales Manager 10000 20080 SA_REP Sales Representative 6000 12008 PU_MAN Purchasing Manager 8000 15000 PU_CLERK Purchasing Clerk 2500 5500 ST_MAN Stock Manager 5500 8500 ST_CLERK Stock Clerk 2008 5000 SH_CLERK Shipping Clerk 2500 5500 IT_PROG Programmer 4000 10000 MK_MAN Marketing Manager 9000 15000 MK_REP Marketing Representative 4000 9000 HR_REP Human Resources Representative 4000 9000 PR_REP Public Relations Representative 4500 10500
参照したURL:
http://stackoverflow.com/questions/11407513/perl-dbdoracle-module-installation
http://search.cpan.org/~pythian/DBD-Oracle-1.23/Oracle.pm
http://perl.dbi.users.narkive.com/0Tkjxsm3/how-to-set-ld-library-path
インストール例
Oracle Database 12c Release 1 (12.1.0.2.0)の場合
# rpm -ivh oracle-instantclient12.1-basic-12.1.0.2.0-1.i386.rpm # rpm -ivh oracle-instantclient12.1-devel-12.1.0.2.0-1.i386.rpm # rpm -ivh oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.i386.rpm # export ORACLE_HOME=/usr/lib/oracle/12.1/client/lib # export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client/lib # cpan install DBI # cpan install DBD::Oracle
ある日使えなくなった(2016年9月)
$ ./test_dbd_oracle.pl Can't load '/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libperl.so.5.20: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません at /usr/lib64/perl5/DynaLoader.pm line 193. at ./test_dbd_oracle.pl line 3. Compilation failed in require at ./test_dbd_oracle.pl line 3. BEGIN failed--compilation aborted at ./test_dbd_oracle.pl line 3.
再インストールしたら直った!
#cpan ... cpan[3]> force install DBD::Oracle ... PYTHIAN/DBD-Oracle-1.74.tar.gz /usr/bin/make install -- OK cpan[4]> exit