首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Ruby 透過 OCI8 介面連接 Oracle 資料庫實作指南

     編輯:Oracle 資料庫基礎

前言

Ruby 開發者若需連接 Oracle,ruby-oci8 是最成熟的選擇。它直接呼叫 Oracle Call Interface (OCI),效能優於 JDBC 橋接方案。本文整理安裝方式、連線語法與常見參數範例。

安裝 ruby-oci8

方式一:Gem 直接安裝(需網路與編譯環境)

gem install ruby-oci8

方式二:下載預編譯二進位檔(Windows 推薦)

至 RubyForge 專案頁 下載對應版本,例如:

  • ruby-oci8-1.0.6-mswin32.rb → 執行 ruby ruby-oci8-1.0.6-mswin32.rb
  • ruby-oci8-1.0.6-x86-mswin32-60.gem → 執行 gem install ruby-oci8-1.0.6-x86-mswin32-60.gem

注意:安裝前務必確認已安裝 Oracle Instant Client 或完整 Client,並設定 ORACLE_HOME、PATH、TNS_ADMIN 環境變數。

驗證連線與基本操作

require 'oci8'

# 1. 使用 tnsnames.ora 別名連線
conn = OCI8.new('scott', 'tiger', 'orcl.world')

# 2. 使用 Easy Connect 字串(10g+ 支援)
conn = OCI8.new('scott', 'tiger', '//db.example.com:1521/ORCL')

# 3. 以 SYSDBA 身分連線
conn = OCI8.new('sys', 'password', nil, :SYSDBA)

# 執行查詢
cursor = conn.exec('SELECT * FROM employees') do |row|
  puts row.join(', ')
end

# 關閉連線
conn.logoff

無 tnsnames.ora 時的動態連線字串

若不想依賴 tnsnames.ora,可自行組裝連線描述字串:

def open_connection(username, password, host, port, sid)
  tns = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=#{host})(PORT=#{port}))" \
        "(CONNECT_DATA=(SID=#{sid})))"
  OCI8.new(username, password, tns)
end

conn = open_connection('scott', 'tiger', '192.168.1.100', 1521, 'ORCL')

常用方法速查

方法說明
OCI8.new(user, pwd, db, priv)建立連線,priv 可為 :SYSDBA 或 :SYSOPER
conn.exec(sql) { |r| ... }執行查詢並迭代每列
conn.exec(sql, *bind_vars)帶入綁定變數執行 DML/DDL
conn.logoff關閉連線
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved