2011年4月7日木曜日

rubyからoracle接続

rubyからOracleへアクセスする方法

まずは、下記コマンドでOracleへのアクセスインタフェースを提供してくれるruby-oci8をインストールする。
gem install ruby-oci8

実際にOracleに接続して、select文を実行するコード(接続先ノDBは、OracleXE)
# encoding: utf-8
require "oci8"

# データベースへ接続
con = OCI8.new("hoge", "hoge", "xe")

begin
  # SELECT文の実行
  cur = con.exec("select id, name from hoge")

  # fetch_hashを呼び出すと、レコードをHashで取得できる。
  # fetchだと、各レコードがArrayで返却される。
  # 個人的には、Hashのが好きなんだよな・・・
  while rec = cur.fetch_hash    
    puts "rec['ID'] = [#{rec['ID']}]"
    puts "rec['NAME'] = [#{rec['NAME']}]"
  end
  cur.close
ensure
  # データベース接続を閉じる
  con.logoff
end

プリペアドステートメントやPL/SQLの実行なんかも出来るらしい。その辺は、今度ちゃんと調べてみよう。