天天看點

oracle on rails

Oracle on Rails

#如果生産環境使用Oracle,則需要以下操作

cd ~

#instance client必須

wget http://cloud.github.com/downloads/saberma/saberma.github.com/oracle-instantclient-basic_10.2.0.3-2_i386.deb

sudo dpkg -i oracle-instantclient-basic_10.2.0.3-2_i386.deb

wget http://cloud.github.com/downloads/saberma/saberma.github.com/oracle-instantclient-devel_10.2.0.3-2_i386.deb

sudo dpkg -i oracle-instantclient-devel_10.2.0.3-2_i386.deb

#非必須,sqlplus用于調試是否能正常連接配接

wget http://cloud.github.com/downloads/saberma/saberma.github.com/oracle-instantclient-sqlplus_10.2.0.3-2_i386.deb

sudo dpkg -i oracle-instantclient-sqlplus_10.2.0.3-2_i386.deb

#設定client路徑

export LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.3/client/lib/

#設定用戶端編碼(重要!否則會亂碼)

export NLS_LANG=AMERICAN_AMERICA.UTF8

#以上參數設定要放于全局設定檔案中

echo "export LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.3/client/lib/" >> ~/.bashrc

echo "export NLS_ >> ~/.bashrc

#測試sqlplus能連接配接到Oracle伺服器

#sqlplus myuser/[email protected]//myserver/mydatabase.mydomain.com

sqlplus zbs_ciis/[email protected]//192.168.1.29/orcl

desc users;

#正常的話應能傳回users表結構

#安裝ruby-oci8所需包

sudo apt-get install libaio1

#安裝ruby-oci8,注意不能使用sudo,否則無法正常擷取LD_LIBRARY_PATH參數

gem install ruby-oci8 --no-ri --no-rdoc --version 1.0.6

#注意,如果是mac平台,則安裝ruby-oci8前先定義以下參數,否則mkmf.log會報

#ld: warning: in /usr/local/oracle/instantclient/libclntsh.dylib, file is not of required architecture

#Undefined symbols for architecture i386:

# "_OCIInitialize", referenced from:

# _OCIInitialize$non_lazy_ptr in cc1EmgZD.o

#ld: symbol(s) not found for architecture i386

export ARCHFLAGS="-arch x86_64"

#一定要注意cpu的類型是intel(32bit?64bit?)還是ppc的,下載下傳時要區分

#測試

irb

require 'rubygems'

require 'oci8'

#不報錯,則表示直連正常

OCI8.new('ciis', 'ciis', '//192.168.1.29:1521/orcl')

#安裝rails資料庫擴充卡

sudo gem install saberma-activerecord-oracle_enhanced-adapter-nvarchar2 --no-ri --no-rdoc

#另外,資料庫的IP位址、使用者名密碼等在config/database.yml中配置