`

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

阅读更多
#请求存储过程,其中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
分享到:
评论

相关推荐

    巧用Ruby配备Oracle数据库

    Oracle数据库支持复杂的SQL查询和存储过程,但这些特性可能需要对Ruby/OCI8库有深入理解才能充分利用。另外,Oracle的权限管理系统和Rails的ActiveRecord模型可能会有一些冲突,需要特别注意权限配置以确保应用正常...

    ruby-oracle相关的数据库操作的gems包

    在Ruby编程语言中,Oracle数据库的操作通常依赖于特定的Gem包。标题提到的"ruby-oracle相关的数据库操作的gems包"是指一组用于连接和交互Oracle数据库的Ruby库。描述中指出,这些包主要基于oci8技术,oci8是Oracle...

    巧用ruby配备oracle数据库.pdf

    在Rails框架中,连接到Oracle数据库所需的参数存储在`config/database.yml`文件中。例如: ```yaml development: adapter: oci host: xe username: development password: password test: adapter: oci host...

    ice最简单实现 ruby调用ice接口 - Ruby - language - ITeye论坛

    标题中的“ice最简单实现 ruby调用ice接口”是指在Ruby编程语言中使用ICE(Internet Communication Engine)框架来实现远程方法调用(RPC)。ICE是由ZeroC开发的一种跨平台、高性能的中间件,它允许不同语言的应用...

    ruby连接oracle驱动

    ruby连接oracle驱动包,支持32位与64位操作系统 Developing applications with Oracle Database Build Ruby and Ruby on Rails applications using the ruby-oci8 driver or JRuby with the Oracle Enhanced ...

    Asp Oracle存储过程返回结果集的代码

    首先,Oracle作为一个功能强大的数据库管理系统,它支持存储过程,而存储过程是存储在数据库中的一组程序代码,可以接受输入参数,执行一系列的SQL语句,并返回结果集给调用者。存储过程能够有效提高代码的模块化,...

    巧用Ruby配备Oracle数据库.doc

    在Ruby编程语言中,连接和操作Oracle数据库通常需要利用Ruby的数据库接口模块Ruby/DBI以及Oracle调用接口(OCI8)库。由于没有纯Ruby的Oracle瘦驱动,开发人员必须借助于OCI8这个C语言编写的Ruby包装器,它实现了与...

    ice同步调用和异步调用实例代码

    Ice 是一种针对客户端和服务器进行通信的面向对象的中间件平台。Ice 为构建面向对象的客户-服务器应用提供了工具、API 和库支持。客户和服务器通信双方可以用不同的编程...本代码为ice同步调用和异步调用实例代码。

    Ruby入门教程中文PDF 附实例

    本教程针对初学者,旨在帮助读者快速掌握Ruby的基础知识,并通过实例深入理解其用法。 首先,Ruby的基本语法是它的一大亮点。Ruby允许开发者以更自然的方式编写代码,这得益于它的语法接近于英语。例如,变量的声明...

    Ruby中文教程,佩戴实例

    Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法著称,深受开发者喜爱。本教程专为初学者设计,旨在帮助你快速掌握Ruby的基础知识和实践技能。...现在,就让我们一起开始Ruby的探索之旅吧!

    从Ruby语言调用Python函数-Ruby开发

    PyCall:从Ruby语言中调用Python函数该库提供了直接从Ruby语言中调用Python并与之进行部分互操作的功能。 您可以在PyCall中导入任意Python模块:从Ruby语言调用Python函数该库提供了直接从Ruby语言调用Python并与之...

    ruby对excel的操作 详细操作

    在Ruby中操作Excel文件主要是通过`win32ole`库来实现的,这个库允许Ruby程序与Windows操作系统中的Office应用程序进行交互,如Microsoft Excel。以下是关于如何使用Ruby操作Excel的详细步骤和知识点: 1. **引入win...

    ruby初级中文教程与实例

    3. 多态:Ruby的多态性体现在方法调用时,会根据接收者的类型自动选择合适的方法实现。 4. 属性和访问器:Ruby提供`attr_accessor`、`attr_reader`和`attr_writer`宏来快速定义属性的读写方法。 5. 构造器与初始化...

    类变量、全局变量、实例变量, 多态、为什么ruby、ruby编码规范

    在编程语言中,变量是存储数据的基本单位,不同的变量类型有着特定的作用范围和用途。本文将深入探讨Ruby语言中的类变量、全局变量、实例变量,以及多态的概念,并结合Ruby编码规范来阐述如何有效地编写代码。 一、...

    Ruby Ruby入门级实例

    Ruby入门级实例

    Ruby-PyCall从Ruby语言调用Python函数

    Ruby-PyCall是一个非常有用的库,它允许Ruby程序员无缝地调用Python的函数和模块,极大地扩展了Ruby的生态系统。这个库使得两个语言之间的交互变得简单而高效,特别是在需要利用Python的强大科学计算或数据处理能力...

    ruby实用函数和实例

    在这个主题下,我们将深入探讨Ruby的一些关键函数和实例,以及如何在实际编程中应用它们。 首先,我们关注的是"使用Ruby语言实现自动测试与数据采集.pdf"这个文件。自动测试是软件开发过程中的重要环节,它确保代码...

    ruby收取邮件实例

    ### Ruby收取邮件实例详解 在IT领域,使用编程语言处理电子邮件是常见的需求之一,而Ruby作为一门优雅且功能丰富的脚本语言,在这方面提供了强大的支持。本文将深入解析一个Ruby脚本,该脚本用于通过POP3协议收取...

    ruby-git, ruby/Git是一个 ruby 库,可以通过将系统调用包装到Git二进制文件来创建读取和操作Git存储库.zip

    ruby-git, ruby/Git是一个 ruby 库,可以通过将系统调用包装到Git二进制文件来创建读取和操作Git存储库 用于 ruby的 Git库在 ruby 中使用Git的库。主页项目源代码的Git public 位于:...

    Ruby-OurPC是gRPC客户端和服务器的实验性实现

    gRPC是一个高性能、开源和通用的RPC(远程过程调用)框架,它基于HTTP/2协议设计,支持多种编程语言,包括Ruby。这个项目主要目的是探索在Ruby中使用gRPC的最佳实践,同时也可能包含一些特定于Ruby的优化或特性。 ...

Global site tag (gtag.js) - Google Analytics