随锐旗下互动传媒:

从 Ruby on Rails 连接到 Oracle

http://www.weaseek.com  2007-10-08 13:49:00  来源:搜讯网社区

了解如何从一个 Rails 应用程序连接到 Oracle 和与其相关的验证和性能问题……

  在使用 Java 时,有两种针对 Oracle 的常见驱动程序:纯 Java (又叫做瘦)驱动程序和原生 OCI 驱动程序。在写作这篇文章的时候,还没有和基于 JDBC 的 Java 瘦驱动程序类似的纯 Ruby 驱动程序。

  要连接到 Oracle,用户必须安装 Ruby/Oracle 调用接口 (OCI8) 库 — 一个基于 Ruby/DBI (数据库接口模块)的数据库驱动程序。RubyDBI 提供了一个与数据库无关的、类似于 JDBC 或 ODBC 的接口,来实现 Ruby 和数据库之间的交互。Ruby OCI8 驱动程序通过标准的 Oracle 客户端软件连接到 Oracle 8 到 10 的所有版本。OCI8 是一个 Ruby 包装器,用本地 C 代码编写,实际的交互就由它来完成。

  非 windows 开发人员可以通过输入 sudo gem install ruby-oci8 来进行安装。Windows 开发人员可以先从 www.rubyforge.org/projects/ruby-oci8 上下该载驱动程序的二进制版本,然后手动安装:

  ruby ruby-oci8-0.1.16-mswin32.rb

  可以通过下面的命令行 Ruby 程序查询一个包含演示 (HR) 模式的数据库,简单检测您所下载的 Ruby OCI8 驱动程序。替换下面命令中 Oracle 数据库的名称和口令:

  set oracle_sid=xe

  ruby -r oci8 -e "OCI8.new('hr', 'password').exec('SELECT * FROM jobs ORDER BY 1') {|r| puts r.join}"

  如果连接和查询成功,输出应如下所示:

  AC_ACCOUNT | Public Accountant | 4200 | 9000

  AC_MGR | Accounting Manager | 8200 | 16000

  AD_ASST | Administration Assistant | 3000 | 6000

  AD_PRES | President | 20000 | 40000

  AD_VP | Administration Vice President | 15000 | 30000

  FI_ACCOUNT | Accountant | 4200 | 9000

  FI_MGR | Finance Manager | 8200 | 16000

  HR_REP | Human Resources Representative | 4000 | 9000

  IT_PROG | Programmer | 4000 | 10000

  MK_MAN | Marketing Manager | 9000 | 15000

  MK_REP | Marketing Representative | 4000 | 9000

  PR_REP | Public Relations Representative | 4500 | 10500

  PU_CLERK | Purchasing Clerk | 2500 | 5500

  PU_MAN | Purchasing Manager | 8000 | 15000

  SA_MAN | Sales Manager | 10000 | 20000

  SA_REP | Sales Representative | 6000 | 12000

  SH_CLERK | Shipping Clerk | 2500 | 5500

  ST_CLERK | Stock Clerk | 2000 | 5000

  ST_MAN | Stock Manager | 5500 | 8500

[责任编辑:梧桐]热门关键词: Rails Oracle