Ruby oci8 で oracle接続して各行のデータをk:v形式のArrayで取り出す話
#!/home/user/local/bin/ruby
require 'oci8'
oracle = OCI8.new('id','pw','service')
oracle.prefetch_rows = 100
result = []
sql = "select * from table_name"
oracle.exec(sql).fetch_hash(){|r| result << r.map{|colname,coldata| "#{colname} : #{coldata}"} }
fetch_hash()
っていうふうに()
を付けないとだめなのね。
レコードを普通にArrayで取り出したいときはfetch()
。
oci8は癖があるな。mysql2のほうが扱いやすい。