windows环境中使用rails连接oracle数据库环境搭建方法

作者:benjaminz([email protected])
时间:2011-4-1

 

下面记录的简单步骤

 

1、应该下载ruby-oci8

     下载地址:http://ruby-oci8.rubyforge.org/en/InstallBinaryPackage.html

     我下载的版本是:ruby-oci8-1.0.7-x86-mswin32-60.gem

     这里不下载2.0版本的原因是下面安装的activerecord-oracle-adapter对应的版本是1.x的,

     如果在这里安装2.x版本的ruby-oci8在后面的使用中会报错

     undefined method `define_a_column' for class `OCI8::Cursor' (NameError)

 

     把下载的gem文件拷贝到c:\

     然后在命令行敲入: gem install ruby-oci8-1.0.7-x86-mswin32-60.gem

 

C:\>gem install ruby-oci8-1.0.7-x86-mswin32-60.gem
Successfully installed ruby-oci8-1.0.7-x86-mswin32-60.gem
1 gem installed
Installing ri documentation for ruby-oci8-1.0.7-x86-mswin32-60.gem
Installing RDoc documentation for ruby-oci8-1.0.7-x86-mswin32-60.gem

 

2、安装 activerecord-oracle-adapter

 

     直接使用gem install  activerecord-oracle-adapter是会报错的

 

     需要增加一个参数,写成下面这个

 

C:\>gem install activerecord-oracle-adapter --source http://gems.rubyonrails.org

Successfully installed activerecord-oracle-adapter-1.0.0.9250
Successfully installed activesupport-2.3.3
2 gems installed
Installing ri documentation for activesupport-2.3.3...
Installing RDoc documentation for activesupport-2.3.3...

 

大功告成,开始操作你的oracle吧。

 

刚才看到一个好的方法,也引用过来,作为备忘吧,感谢原作者jhsea3do

  jhsea3do 2009-05-07  

分享一下我的经验吧,作为开发环境,使用OCI8,只需要安装客户端既可。

我用windows版的Oracle 10g Express测试了一下,整理了一个最小化的文件清单
http://dev.graciej.com/oracle/ora10g-client-lite-mswin32.tree.txt

把这些文件压缩一下只有20兆,解压缩后设置为ORACLE_HOME就可以直接使用,不用再装客户端了。

不论是unix还是windows,除了ORACLE_HOME另外还需要设置两个环境变量分别是NLS_LANG和PATH

set ORACLE_HOME=d:\opt\oracle\ora10g-client-lite-mswin32
set NLS_LANG=american_america.ZHS16GBK
set PATH=%ORACLE_HOME%\bin;%PATH%
 
set ORACLE_HOME=d:\opt\oracle\ora10g-client-lite-mswin32
set NLS_LANG=american_america.ZHS16GBK
set PATH=%ORACLE_HOME%\bin;%PATH%



如果在cgi程序中使用OCI8的话,必须也要带入这些环境变量,以unix下的apache2为例,我们的apache启动前没有加载oracle的环境变量,所以我们在cgi目录下添加一个.htaccess文件,内容如下

 

 

SetEnv          ORACLE_HOME         "/opt/oracle/product/10.2.0"
SetEnv          NLS_LANG            "american_america.ZHS16GBK"
SetEnv          TNS_ADMIN           "/opt/oracle/product/10.2.0/network/admin"
SetEnv          ORACLE_SID          "oraclesid"
SetEnv          LD_LIBRARY_PATH     "/opt/oracle/product/10.2.0/lib:/usr/lib:/usr/local/lib"

DirectoryIndex  index.html index.rb
AddType         application/x-httpd-cgi .sh .rb
 


lighttpd 下和apache查不多,需要打开 mod_setenv,然后加入

setenv.add-environment  = (
        "ORACLE_HOME" => "/opt/oracle/product/10.2.0",
        "TNS_ADMIN" => "/opt/oracle/product/10.2.0/network/admin",
        "NLS_LANG" => "american_america.ZHS16GBK"
)
 

 

你可能感兴趣的:(oracle,windows,Ruby,Rails,ActiveRecord)