ruby调用oracle存储过程实例之直接赋值参数调用_Ruby_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > Ruby > ruby调用oracle存储过程实例之直接赋值参数调用

ruby调用oracle存储过程实例之直接赋值参数调用

 2014/7/24 17:04:18  scholltop  程序员俱乐部  我要评论(0)
  • 摘要:#请求存储过程,其中option为页面传过来的参数选项。db_read_str='BEGINWLAN_ALARM_QRY(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);END;'stat_alarm_procedure(db_read_str,option)defstat_alarm_procedure(db_read_str,option=nil)date_format='%Y-%m
  • 标签:ORA Ruby 过程 存储过程 实例 Oracle Oracle存储过程
class="java">
#请求存储过程,其中option为页面传过来的参数选项。
db_read_str = 'BEGIN WLAN_ALARM_QRY(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?); END;'
stat_alarm_procedure(db_read_str,option)


 def stat_alarm_procedure(db_read_str, option = nil)
    date_format = '%Y-%m-%d'
    start_date = option["startdate"]
    end_date = option["enddate"]
    with_db_ora do |dbh|
      sth_db = dbh.prepare(db_read_str)
      sth_db.bind_param(1, option["netloc_gran"])
      sth_db.bind_param(2, option["netloc"])
      sth_db.bind_param(3, option["device_class"])
      sth_db.bind_param(4, option["dic_group"])
      sth_db.bind_param(5, start_date.strftime(date_format)) #"to_date('#{start_date.strftime(date_format)}','yyyy-mm-dd')"
      sth_db.bind_param(6, end_date.strftime(date_format)) #"to_date('#{end_date.strftime(date_format)}','yyyy-mm-dd')"
      sth_db.bind_param(7, option["cityid"])
      sth_db.bind_param(8, option["page"])
      sth_db.bind_param(9, option["size"])
      sth_db.bind_param(10, 9)
      sth_db.bind_param(11, 3)
      sth_db.bind_param(12, DBI::StatementHandle)#to bind ref cursor as DBI::StatementHandle
      sth_db.execute
      
      @total = sth_db.func(:bind_value, 10)
      sth = sth_db.func(:bind_value, 12)
      @schema = sth.column_info
      @results = sth.fetch_all
    end
    schema_info = Array.new
    @schema.each do |s|
      schema_info << s["name"] unless s["name"].downcase == 'r'
    end
    {:total => @total, :data => {:schema => schema_info, :result => @results}}
  end


#with_db_ora 方法见上一篇引注http://scholltop.iteye.com/blog/2095982。
上一篇: No Man’s Sky:算法生成的庞大世界 下一篇: 没有下一篇了!
发表评论
用户名: 匿名