`
boogie
  • 浏览: 235658 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

Rails应用连接Oracle数据库时的配置

    博客分类:
  • RoR
阅读更多
Rails的默认设置适用于 MySQL,使用Oracle时要重新配置:
1、下载和安装 Oracle Rails 库,访问 http://rubyforge.org/projects/ruby-oci8,下载 ruby-oci8-0.1.16-mswin.r 到 C 盘中,然后在命令窗口中执行以下命令:
C:\> ruby ruby-oci8-0.1.16-mswin.rb
2、Rails应用所在服务器需要安装Oracle客户端
3、更改database.yml 文件:
  adapter: oci
  username: user
  password: pass
  host: 192.168.0.100/xgm

注意host的格式为:[ip]/[sid或service_name],连接不上往往问题就出在这里!
分享到:
评论
14 楼 zuolan 2007-08-11  
tnsnames配置
192.168.0.22 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.22)(PORT = 1521))
    )
    (CONNECT_DATA = (SERVICE_NAME = southdb))
  )

ruby语句连通性测试连数据库正常

databases.yml配置
  adapter: oci
  username: webdev
  password: ******
  host: 192.168.0.22/192.168.0.22


生成应用时错误:wrong argument type Fixnum (expected String)  谁知道是怎么回事?

E:\eclipse3.2\workspace\mailbox>ruby script\generate scaffold mailbox
      exists  app/controllers/
      exists  app/helpers/
      exists  app/views/mailboxes
      exists  app/views/layouts/
      exists  test/functional/
  dependency  model
      exists    app/models/
      exists    test/unit/
      exists    test/fixtures/
   identical    app/models/mailbox.rb
   identical    test/unit/mailbox_test.rb
   identical    test/fixtures/mailboxes.yml
wrong argument type Fixnum (expected String)


13 楼 hisoka 2007-03-16  
如果oracle服务在本机,连接host方式可以直接写服务名,注意密码前得空格问题,3种方式下得配置都要改.
12 楼 Theo 2006-11-18  
今天试了一下,用本地net服务名确实能连上……

但是我在新增的时候报错:
OCIError: ORA-02289: в????ţ????攚: select books_seq.nextval id from dual

手动在数据库里添加数据后看list能看到数据库中的记录,对这条记录进行“show”没有问题;“edit”会报错,出错信息如下:

Showing d:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/templates/scaffolds/edit.rhtml where line #4 raised:

private method `hour' called for #<Date: 4908115/2,0,2299161>
……;
“destroy”也没有问题。

有遇到过这种情况的朋友吗?请问这种问题要如何解决呢?

<11:25 update>
发现直接往数据库里create sequence就解决所有的问题了……汗……命名规范是 表名+"_seq"……
11 楼 ShingU 2006-11-12  
adapter: oci  
username: user  
password: pass  
host: <service_name>

我现在一般都这样设置的。

还有一点需要注意的是,密码和":"之间一定要有一个空格。以前不知道,我还以为要去掉,就怎么也连不上数据库了,后来加上空格才行。

不知道为什么会这样?
10 楼 lucifer 2006-11-03  
楼主的host设置和我的是不一样滴,但是我也这么设,但是就是连不上。最后设成了sid_host才可以了
9 楼 together 2006-11-03  
boogie 写道

3、更改database.yml 文件:
  adapter: oci
  username: user
  password: pass
  host: 192.168.0.100/xgm

注意host的格式为:[ip]/[sid或service_name],连接不上往往问题就出在这里!

host只需要为本机的net服务名就可以。假如就叫oci123,那host: oci123即可。
8 楼 melin 2006-11-01  
端口号呢?
7 楼 cngump 2006-10-27  
rails用ActiveRecord连oracle和mysql一样的.
性能就没有测试了.
http://www.oracle.com/technology/pub/articles/haefel-oracle-ruby.html

6 楼 boogie 2006-10-24  
zexunlee 写道
boogie 写道
我受这边环境制约必须用ORACLE数据库,Rails在处理Oracle时是非常麻烦的,估计性能也好不到哪里去,看来我目前只能学学玩玩了!


我用起来感觉很好。可能我对Oracle比较熟的缘故。

性能好吗?有没有测试过?
5 楼 zexunlee 2006-10-24  
boogie 写道
我受这边环境制约必须用ORACLE数据库,Rails在处理Oracle时是非常麻烦的,估计性能也好不到哪里去,看来我目前只能学学玩玩了!


我用起来感觉很好。可能我对Oracle比较熟的缘故。
4 楼 boogie 2006-10-20  
我受这边环境制约必须用ORACLE数据库,Rails在处理Oracle时是非常麻烦的,估计性能也好不到哪里去,看来我目前只能学学玩玩了!
3 楼 robbin 2006-10-19  
update 写道
你试过有从数据库读出数据有中文乱码问题吗?我在测的时间是有乱码的,我的Oracle字符集是gbk的,rails是utf8的.
后面没有再试,一直用mysql了.


要设置NLS_LANG的。
2 楼 airport 2006-10-19  
rails的编码字符集在哪里设置?
1 楼 update 2006-10-17  
你试过有从数据库读出数据有中文乱码问题吗?我在测的时间是有乱码的,我的Oracle字符集是gbk的,rails是utf8的.
后面没有再试,一直用mysql了.

相关推荐

    rails2.1與Oracle 連結所需gem

    在Rails 2.1时代,开发者需要安装和配置这些gem来确保Rails应用能够顺利地与Oracle数据库进行交互。`ruby-oci8`是Ruby语言访问Oracle数据库的接口,它实现了OCI(Oracle Call Interface)库,允许Ruby程序直接操作...

    巧用Ruby配备Oracle数据库

    首先,连接Oracle数据库需要Ruby的一个特定库——Ruby/Oracle 调用接口 (OCI8),它是基于Ruby/DBI模块的数据库驱动程序。RubyDBI提供了一个抽象层,使得开发者能够使用统一的API与不同的数据库系统(如JDBC或ODBC)...

    巧用Ruby配备Oracle数据库.doc

    5. **Rails配置**:在Rails应用中,数据库配置文件`config/database.yml`负责定义连接到Oracle的参数。以下是一个示例配置,包括development、test和production环境,每个环境有不同的用户名和密码: ```yaml ...

    使用ROR编写ORACLE WEB应用

    在描述中提到的博文链接可能详细介绍了如何配置Rails项目以连接Oracle数据库,包括以下步骤: 1. 安装Oracle客户端和必要的库,如Instant Client,以便在本地环境运行Oracle相关的程序。 2. 设置环境变量,确保Rails...

    在RHEL上安裝設置ROR(nginx+passenger+ruby+rails+oracle+netzke)

    6. **Oracle数据库**: 配置RoR应用连接Oracle数据库需要安装`ruby-oci8` gem,它提供了Ruby与Oracle数据库的接口。由于Oracle驱动可能不包含在默认的`gem`源中,可能需要添加Oracle的gem源或者手动编译安装。 7. **...

    巧用ruby配备oracle数据库.pdf

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

    结合使用 Oracle 和 Ruby on Rails 教程

    本教程旨在帮助开发者了解如何在Rails应用中集成Oracle数据库,实现数据存储与处理的功能。 【描述】:“结合使用 Oracle 和 Ruby on Rails 教程”这篇博文提供了关于在Ruby on Rails项目中配置和使用Oracle数据库...

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

    总结来说,`ruby-oci8`是Ruby编程语言中用于与Oracle数据库交互的关键工具,它提供了一套易于使用的接口,使得开发者能够在多种平台上构建高效、可靠的Oracle数据库应用。通过不同版本的Gem包,开发者可以根据自己的...

    11种连接数据库的方法

    数据库是存储和管理数据的核心工具,对于任何软件应用而言,高效稳定地连接数据库至关重要。本文将详细介绍11种常见的数据库连接方法,涵盖多种编程语言和数据库类型。 1. **Java JDBC(Java Database Connectivity...

    jruby_on_rails

    4. **数据库配置**:JRuby on Rails 支持所有 JDBC 兼容的数据库,包括 MySQL、PostgreSQL 和 Oracle,通过配置 `config/database.yml` 文件来指定数据库连接。 5. **测试**:Rails 提供了丰富的测试框架,如 RSpec...

    ruby-plsql-master

    - 通过示例代码学习如何连接Oracle数据库,执行PL/SQL代码,并处理返回的结果。 6. **优化和性能**: - 使用这样的库可能会增加系统复杂性,因此在设计时需要权衡易用性、性能和维护性。 - 优化PL/SQL代码以减少...

    rubyee 安装

    在RubyEE的上下文中,这可能是Rails应用的数据库模式。在安装和配置RubyEE后,你需要将这个SQL文件导入到你的数据库中。具体步骤取决于你使用的数据库管理系统(如MySQL、PostgreSQL),但通常涉及以下步骤: 1. ...

    web服务常用技术方式一览.docx

    总结起来,Web服务常用技术涉及动态脚本语言(如CGI、FastCGI、PHP、ASP、JSP等)、网站框架(如CGI、Rails等)、数据库系统(如SQL Server、Oracle、MySQL等)以及数据库管理和PHP的部署。了解和掌握这些技术对于...

    oracle-js-project:JS前端和Ruby on Rails后端

    - `config`: 存放应用配置文件,如数据库连接、路由等。 - `db`: 数据库相关的文件,如迁移(migrations)。 - `public`: 静态资源如HTML、CSS、图片等存放的地方。 - `spec`: 测试代码,Rails项目通常使用RSpec进行...

    JAVA上百实例源码以及开源项目源代码

    Java实现的FTP连接与数据浏览程序 1个目标文件 摘要:Java源码,网络相关,FTP Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 ...

    jfinal的手册

    - **5.9 Oracle支持**:针对Oracle数据库的特殊支持。 #### 七、EhCachePlugin - **6.1 概述**:EhCachePlugin是一个缓存插件,用于提高应用程序性能。 - **6.2 EhCachePlugin**:配置缓存策略和生命周期。 - **...

Global site tag (gtag.js) - Google Analytics