- 浏览: 682513 次
- 性别:
- 来自: 中山
文章分类
最新评论
-
wuhuizhong:
jFinal支持Rest风格吗?可以想spring mvc那样 ...
在JFinal的Controller中接收json数据 -
wuhuizhong:
在jfinal中应如何获取前端ajax提交的Json数据?ht ...
在JFinal的Controller中接收json数据 -
wuhuizhong:
jfinal如何处理json请求的数据:问题: 在某些api接 ...
在JFinal的Controller中接收json数据 -
wuhuizhong:
Ubuntu14.04 安装 Oracle 11g R2 Ex ...
Oracle 11g release 2 XE on Ubuntu 14.04 -
alanljj:
这个很实用,已成功更新,谢过了!
odoo薪酬管理模块l10n_cn_hr_payroll
1.簡單的例子:
=begin --創建Oracle Function create or replace function FUN_TEST(P_STR VARCHAR2) return varchar2 is Result varchar2(100); begin Result := P_STR||'-OK! FUNCTION EXECUTED.'; return(Result); end FUN_TEST; =end require 'oci8' conn = OCI8.new("hr","hr","192.168.0.1/sid") cursor = conn.parse <<-EOS BEGIN :return := FUN_TEST(:p_string); END; EOS cursor.bind_param(':p_string',"xxx",String) cursor.bind_param(':return',nil,String,4000) cursor.exec puts cursor[':return'] cursor.close
2.Module 的例子:
# activerecord.rb: Using ActiveRecord, the ORM module require 'rubygems' require 'active_record' # Establish a connection to Oracle ActiveRecord::Base.establish_connection( :adapter => "oci", :host => '192.168.0.1/sid', :username => 'hr', :password => 'password' ) module SQLStatement class NoTypeResult < StandardError end # class class SQLProc attr_reader :outs attr_accessor :name, :arguments def initialize( args = nil ) @name = args[:name] unless args[:name].nil? @arguments = args[:arguments] unless args[:arguments].nil? @conn = ActiveRecord::Base.connection.raw_connection end # def initialize def exec( args = nil ) unless args.nil? || ( !args.is_a? Hash ) args.each { |k, v| @arguments[k.to_s.intern] = args[k] } end # unless func_args = '' @arguments.each { |k, v| func_args += "#{func_args == '' ? '' : ', '}#{k.to_s} => :#{k.to_s}"} sql = "BEGIN #{@name}( #{func_args} );END;" cursor = @conn.parse( sql ) @arguments.each do |k, v| cursor.bind_param( ":#{k.to_s}", v) end # each cursor.exec() #outs @outs = [] @arguments.each do |k, v| @outs << cursor[":#{k.to_s}"] end # each cursor.close end # def exec end # class SQLProc class SQLFunc < SQLProc attr_reader :result attr_accessor :result_type,:result_length def initialize( args = nil ) @result_type = args[:result_type] unless args[:result_type].nil? @result_length = args[:result_length] unless args[:result_length].nil? super( args ) end # def def exec( args = nil ) if @result_type.nil? raise NoTypeResult, 'No type for result setting', caller end # if unless args.nil? || ( !args.is_a? Hash ) args.each { |k, v| @arguments[k.to_s.intern] = args[k] } end # unless func_args = '' @arguments.each { |k, v| func_args += "#{func_args == '' ? '' : ', '}#{k.to_s} => :#{k.to_s}"} sql = "BEGIN :result := #{@name}( #{func_args} );END;" cursor = @conn.parse( sql ) @arguments.each do |k, v| cursor.bind_param( ":#{k.to_s}", v ) end # each #cursor.bind_param( ":result", nil, @result_type ) #cursor.bind_param(":result",Fixnum) #cursor.bind_param( ":result", nil, String,100 ) cursor.bind_param( ":result", nil, @result_type,@result_length ) cursor.exec() @result = cursor[':result'] cursor.close end # def exec end # class end # module SQLStatment #Example of use: =begin CREATE OR REPLACE PROCEDURE pro_test(p1 in varchar2, p2 out varchar2) is BEGIN select p1 || '-OK! PROCEDURE EXECUTED.' into p2 from dual; end pro_test; =end puts 'Example of procedure:' procedure= SQLStatement::SQLProc.new( :name => 'pro_test', :arguments => { :p1 =>'ruby call', :p2 =>' '*100} ) procedure.exec puts procedure.outs[1] =begin create or replace function FUN_TEST(P_STR VARCHAR2) return varchar2 is Result varchar2(100); begin Result := P_STR||'-OK! FUNCTION EXECUTED.'; return(Result); end FUN_TEST; =end puts 'Example of function:' function = SQLStatement::SQLFunc.new( :name => 'fun_test', :result_type => String, :result_length => 100, :arguments => { :p_str =>'ruby call'} ) function.exec #raise function.result.inspect puts function.result
3.應用的例子:
第一步:創建應用(ROR)
rails app
第二步:配置資料連接(ROR)
#database.yml development: adapter: oci host: (DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = MYDB.MYDOMAIN.COM))) username: scott password: tiger
第三步:創建存儲過程(Oracle)
--Stored_proc.pks: CREATE OR REPLACE PACKAGE stored_proc AS type row_type is record ( name emp.ename%type, job emp.job%type ); TYPE table_type IS TABLE OF row_type; procedure stored_proc(p_empno IN emp.empno%type, p_arr OUT table_type); END stored_proc; / --Stored_proc.pkb: CREATE OR REPLACE package body stored_proc as procedure stored_proc( p_empno emp.empno%type , p_arr OUT table_type ) is begin select ename , job BULK COLLECT into p_arr from emp where emp.empno=p_empno; end; end stored_proc; /
第四步:增加管道函數(Oracle)
create or replace function test_pipe(p_empno emp.empno%type default null) return stored_proc.table_type pipelined is v_arr stored_proc.table_type; begin stored_proc.stored_proc(nvl(p_empno, 7369), v_arr); for i in v_arr.first..v_arr.last loop pipe row(v_arr(i)); end loop; return; end test_pipe; /
第五步:創建虛擬視圖(Oracle)
create or replace view samples(name, job) as select name , job from table(test_pipe(null)) /
第六步:建構腳手架(ROR)
ruby script/generate controller sample ruby script/generate model sample
第七步:修改控制器(ROR)
#/app/controllers/sample_controller class SampleController < ApplicationController scaffold :sample def sample sql="select name, job from table(test_pipe("+ params[:id] + "))" unless params[:id].nil? samples=Sample.find_by_sql(sql) @sample=samples[0] end end end
第八步:創建模板(ROR)
app/views/sample/sample.rhtml
<h1> Name of party</h1> <h2> <%= @sample.name+": "+ @sample.job %> </h2> <FORM ACTION="" METHOD=GET> <table> <tr><td>Party id: </td><td><input type=text name=id></td></tr> <tr><td colspan=2><input type=submit value="go"></td></tr> </table> </form>
試一下:http://localhost:3000/sample/sample?id=7698
发表评论
-
使用Torquebox在Windows下面进行Rails的部署
2013-12-16 07:16 1079一、安装Torquebox 参考:http://torqu ... -
ruby匹配中文的正则表达
2013-07-16 21:12 1900ruby1.9: /\p{Word}+/u 不限于 a ... -
Ruby On Rails, Thin and Nginx on Windows
2012-01-08 07:23 1817安装thin: gem install eventmachi ... -
搭建rubygem repository server
2011-11-14 13:06 1011做rails开发通常需要gem i ... -
在 Heroku 安裝 Redmine (1.1-stable)
2011-11-13 09:59 1055Redmine 是一套好用的軟 ... -
Rails之记录用户操作数据库信息
2011-11-10 02:50 1166db/migrate/002_add_audit_trails ... -
Rails3部署到heroku
2011-11-10 02:47 691gem install heroku rails new m ... -
Rails Cache
2011-11-10 02:20 681Rails Cache http://www.slid ... -
How do I use ActiveSupport core extensions?
2011-11-07 17:04 475When I try to use 1.week.ago ... -
Redhat安裝 nokogiri 時要求升級 libxml2
2011-11-07 16:58 2247安裝 nokogiri 時出現以下錯誤信息: Install ... -
Compass Agile Enterprise Framework
2011-11-07 06:37 713设置: 1.Gemfile gem 'erp_agreem ... -
Linux下Rails 3.1安装sqlite3
2011-10-25 08:29 1136服务器系统是Red Hat 4.1.2-48。默认已安装sql ... -
Ubuntu Server 64bits 如何安装 ruby-oci8
2011-10-23 06:56 3019安装 Linux软件包 : sudo apt- ... -
将gem包打成jar包
2011-10-16 11:45 815http://www.intellij.org.cn/blog ... -
升級到 Rails 3.1,專案所要做的前置準備工作
2011-10-14 14:28 632http://wp.xdite.net/?p=3137 ... -
Ruby 调用Shell脚本
2011-10-13 15:13 2887// 第一种 用反引号将shell命令引起来,如果是sh ... -
Ruby通过SOAP调用webservice发送短信
2011-10-06 11:27 1597url = 'http://lxt.esms360.co ... -
Sending delayed email from devise
2011-09-27 14:39 646Alternatively, instead of using ... -
让邮件发送也变得有序
2011-09-27 14:10 578邮件发送应该是一个网站中不可或缺的功能,但如果同时触发了大量的 ... -
rails 3 中 生成pdf 2: email pdf 附件
2011-09-27 13:31 983ActionMailer in Rails 3 http:/ ...
相关推荐
标题“使用ROR编写ORACLE WEB应用”表明我们要探讨的是如何使用Ruby on Rails(简称ROR)框架来构建与Oracle数据库交互的Web应用程序。Ruby on Rails是一个基于Ruby语言的开源Web开发框架,它遵循MVC(Model-View-...
ROR环境 Ruby version 1.9.3 (java) RubyGems version 1.8.24 Rack version 1.4 Rails version 3.2.12 JavaScript Runtime therubyrhino (Rhino) Active Record version 3.2.12 Action Pack version 3.2.12 ...
2. **创建 PL/SQL 包**:在 Oracle 数据库中,你可以创建一个包(package)来封装对 ROR API 的调用。包由包规范(specification)和包体(body)组成,其中包规范声明公共过程和函数,而包体则实现这些过程和函数的...
在RHEL(Red Hat Enterprise Linux)系统上搭建Ruby on Rails(简称RoR)应用程序环境是一项技术性较强的任务,尤其当涉及到与其他服务如Nginx、Phusion Passenger、Ruby、Rails以及Oracle数据库集成时。以下是对这...
Quest.Toad.for.Oracle.Xpert.v8.0-ROR 注册机,想必很多人想要吧
RoR(Ruby on Rails)是一种流行的开源Web开发框架,以其高效和简洁的代码著称。然而,随着网站规模的增长,性能优化成为必不可少的环节。在本文中,我们将探讨一些RoR性能优化的关键方面,主要基于JavaEye网站在...
单个组织记录由以下JSON结构表示: { "id":"https://ror.org/013cjyk83", "name":"PSL Research University", "email_address":null, "ip_addresses":[ ], "established":2010, "types":[ "Education" ], ...
NULL 博文链接:https://xuxiangpan888.iteye.com/blog/266696
Ruby on Rails(RoR)是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web开发过程。在这个选题方向中,我们主要探讨的是与RoR相关的源代码分析和学习。源代码是...
**Ruby on Rails(简称RoR)中文资料** Ruby on Rails(RoR)是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式,旨在简化Web开发过程,提高开发效率。RoR强调“约定优于配置”...
Ruby on Rails(简称RoR或Rails)是一种基于Ruby语言的开源Web应用框架,它遵循Model-View-Controller(MVC)架构模式,旨在提高开发效率并提供简洁、优雅的代码结构。"ror实例"可能指的是在学习或实践中,通过创建...
**神经网络Ror ResNet模型详解** 在深度学习领域,ResNet(残差网络)模型是具有里程碑意义的创新,由He et al.在2015年提出。该模型解决了深度神经网络训练中的梯度消失问题,允许构建非常深的网络结构。而“Ror”...
Quest.Toad.for.Oracle.Suite.v8.0-ROR 另外一个注册机,想必也有人想要把
在Ruby on Rails(ROR)开发环境中,安装和配置正确的依赖包是至关重要的。这个压缩包包含了一系列用于ROR框架的基础组件,但不包括Ruby本身。让我们深入了解一下这些包的作用和重要性。 首先,`actionpack`是Rails...
**初探ROR** Ruby on Rails(简称ROR)是一个基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在促进开发过程的简洁性和效率。Ruby on Rails的核心理念是“Don't Repeat ...
基于RoR的博客系统,代码风格简单清晰,前后太完善,适合初学者。
在.NET框架中,文件上传是Web应用程序中常见的功能,尤其是对于ASP.NET平台。"ASP.NET支持断点续传,大文件上传"这个标题揭示了两个关键知识点:断点续传和处理大文件上传。 首先,让我们来理解断点续传的概念。...
Oracle是一种流行的关系型数据库管理系统,而Ruby on Rails(简称RoR)则是一个基于Ruby语言的开源Web应用框架,它以其MVC(模型-视图-控制器)架构模式和“约定优于配置”的原则受到开发者们的青睐。本文将探讨如何...
### Windows上搭建Ruby on Rails(ROR)环境详解 #### 一、引言 随着Web开发技术的不断发展,Ruby on Rails(简称Rails或ROR)作为一种高效、简洁且优雅的Web开发框架,受到了广大开发者的青睐。然而,在Windows...