DBI:Oracle

2013年4月9日 Perl
Perlを使用してDB(Oracle)に接続する際に、一々処理を書くのが面倒だったので設定ファイルを外部化させた上で容易に接続出来るようにサブルーチンを作成した。

メイン処理
#!/usr/bin/perl
use strict;
use warnings;
use DBI;

my $config_file = qq|./config.ini|;
my $dbh = &DB_Connect($config_file);

メインはこうした上で、下記のサブルーチンには設定ファイルを渡す。
サブルーチン
sub DB_Connect{
  my %Config_Hash =();
  my $return = qq||;
  if(-f $_[0]){
    open(FH,$_[0]);
    while(){
      chomp($_);
      my ($key,$value) = split(/=/,$_);
      $Config_Hash{’HOST’} = $value if($key eq ’HOST’);
      $Config_Hash{’PORT’} = $value if($key eq ’PORT’);
      $Config_Hash{’SID’} = $value if($key eq ’SID’);
      $Config_Hash{’SERVICE_NAME’} = $value if($key eq ’SERVICE_NAME’);
      $Config_Hash{’UserID’} = $value if($key eq ’UserID’);
      $Config_Hash{’Password’} = $value if($key eq ’Password’);
    }
    close(FH);
    $return = DBI->connect(qq|DBI:Oracle:HOST=$Config_Hash{’HOST’};PORT=$Config_Hash{’PORT’};SID=$Config_Hash{’SID’};SERVICE_NAME=$Config_Hash{’SERVICE_NAME’}|,qq|$Config_Hash{’UserID’}|,qq|$Config_Hash{’Password’}|);
    if(!defined($return)){
      $return = Error(qq|DB connection failed.| . qq|$DBI::errstr|);
    }
  }else{
    $return = qq|File $_[0] not found.|;
  }
  return $return;
}

設定ファイルは以下の通り。
config.ini の内容
HOST=[Host]
PORT=[Port Number]
SID=[SID]
SERVICE_NAME=[service name]
UserID=[User ID]
Password=[Pssword]

具体的には下記の通り―
設定ファイルの例
HOST=127.0.0.1
PORT=1521
SID=ORCL
SERVICE_NAME=my_service_name
UserID=user_name
Password=passwd

これでメインの $dbh にはデータベース・ハンドルが返ってくるので、後は実際に処理を記述すればいい。

コメント

最新の日記 一覧

<<  2025年6月  >>
1234567
891011121314
15161718192021
22232425262728
293012345

お気に入り日記の更新

この日記について

日記内を検索