RailsじゃなくてActiveRecordを使う with Oracle
OCI8は前に導入済み。
Railsをインストール↓
# gem install rails
Oracle用のadapterをインストール↓
# gem install activerecord-oracle-adapter --source http://gems.rubyonrails.org
--source http://gems.rubyonrails.orgを付けないとダメらしい。
usersテーブルにレコードinsertをやってみる。
まずテーブル作成。例えばこんな感じとする↓
CREATE TABLE USERS(
ID NUMBER,
NAME CHAR(16),
AGE CHAR(3),
ADDRESS CHAR(128),
MAIL CHAR(64)
CONSTRAINT USERS_PRKEY PRIMARY KEY(ID) USING INDEX TABLESPACE MY_TS,
)TABLESPACE MY_TS;
id用のシーケンスを作成↓
CREATE SEQUENCE USERS_SEQ
テーブル名_SEQは規約らしい。
スクリプトは3つ。↓を同一ディレクトリに。
・arbasic.rb ← Oracle接続情報
・user.rb ← マッピングクラス
・main.rb ← 実際の実行ファイル
【arbasic.rb】
:databaseはホスト名(or IPアドレス)/TNS名。
【user.rb】
【main.rb】
User.transaction do ~ endでトランザクション。この中で例外が発生するとロールバックされる。
Railsをインストール↓
# gem install rails
Oracle用のadapterをインストール↓
# gem install activerecord-oracle-adapter --source http://gems.rubyonrails.org
--source http://gems.rubyonrails.orgを付けないとダメらしい。
usersテーブルにレコードinsertをやってみる。
まずテーブル作成。例えばこんな感じとする↓
CREATE TABLE USERS(
ID NUMBER,
NAME CHAR(16),
AGE CHAR(3),
ADDRESS CHAR(128),
MAIL CHAR(64)
CONSTRAINT USERS_PRKEY PRIMARY KEY(ID) USING INDEX TABLESPACE MY_TS,
)TABLESPACE MY_TS;
id用のシーケンスを作成↓
CREATE SEQUENCE USERS_SEQ
テーブル名_SEQは規約らしい。
スクリプトは3つ。↓を同一ディレクトリに。
・arbasic.rb ← Oracle接続情報
・user.rb ← マッピングクラス
・main.rb ← 実際の実行ファイル
【arbasic.rb】
#!/usr/bin/ruby
require 'rubygems'
require 'active_record'
ActiveRecord::Base.establish_connection(
:adapter => 'oracle',
:username => 'hoge',
:password => 'hoge',
:database => 'dbhost_name/tns_name'
)
:databaseはホスト名(or IPアドレス)/TNS名。
【user.rb】
#!/usr/bin/ruby
require 'arbasic'
class User < ActiveRecoed::Base
end
【main.rb】
#!/usr/bin/ruby
require 'user'
class Main
def run
User.transaction do
objUser = User.new
objUser.name = 'hoge'
objUser.age = '30'
objUser.address = 'hoge city'
objUser.mail = 'hoge@hoge.com'
objUser.save!
end
end
end
Main.new.run
User.transaction do ~ endでトランザクション。この中で例外が発生するとロールバックされる。
この記事のトラックバックURL
http://ysmt.blog21.fc2.com/tb.php/247-442b4eb3