新手问题 想用 Ruby 连接 oracle 数据库执行 Sql 语句,各位请问有推荐的好方法吗?

gsky · March 21, 2014 · Last by ericguo replied at March 22, 2014 · 2666 hits

最近工作里老是要查 SQL 语句,想写个 Ruby 脚本,可以连接 oracle 数据库并执行 Sql 语句,各位有推荐的好方法吗?

直接用 sequel 操作数据库

#1 楼 @ywjno 搜到了~~谢谢,我去试下。

不用那么烦吧,oci8 足以。

require 'oci8'

conn=OCI8.new('username','password','DB')

co_la_sql = """
SELECT co.containername, la.stdmrgebatch
FROM container co
INNER JOIN a_scheduledata sd on sd.scheduledataid=co.scheduledataid
INNER JOIN a_lotattributes la ON la.containerid=co.containerid
WHERE co.batchno IS NULL AND la.stdmrgebatch IS NOT NULL
  AND la.stdmrgebatch like 'M%'
"""

containernames   = []
stdmrgebatch = []
conn.exec(co_la_sql) do |r|
    containernames << r[0]
    stdmrgebatch << r[1]
end

containernames.each_with_index do |id, i|
    sql = "UPDATE container co SET co.batchno='#{stdmrgebatch[i]}', co.changecount=co.changecount+1 WHERE co.containername IN ('#{id}')"
    puts sql + ";\n"
    num_rows = conn.exec(sql)
    puts "#{num_rows} rows updated."
end

conn.exec "commit"
conn.logoff


You need to Sign in before reply, if you don't have an account, please Sign up first.