通过OCI8接口连接Oracle数据库
创始人
2024-07-16 15:51:13
0

连接Oracle数据库的方法很多,下面为您介绍了一个通过OCI8接口连接Oracle数据库的方法,希望对您学习连接Oracle数据库方面能有所帮助。

如果你是是有那个PL/SQL程序的话,就可以顺利的执行以下的步骤了,因为oci8会使用tnsname中的配置 通过PL/SQL访问数据库

a 使用该命令直接安装:gem install ruby-oci8
b 下载文件:http://rubyforge.org/projects/ruby-oci8/ 
   B1.下载文件: ruby-oci8-1.0.6-mswin32.rb
    下载到本地后通过命令 执行rb文件:ruby ruby-oci8-1.0.6-mswin32.rb
   B2. 下载文件:ruby-oci8-1.0.6-x86-mswin32-60.gem
............................... N多安装方式
***文件如下: 
ruby-oci8-1.0.6-mswin.rb 56 KB 1,989 i386 Other
ruby-oci8-1.0.6-x86-mswin32-60.gem 112 KB 780 i386 .gem (RubyGem)
ruby-oci8-1.0.6.gem 116 KB 798 Any .gem (RubyGem)
ruby-oci8-1.0.6.tar.gz
安装成功后,验证是否连接Oracle数据库通过,方法如下:
#使用的时候一定要加载oci8
require 'oci8'
#创建连接
conn = OCI8.new("用户名", "密码","oracle服务器名称")

a =[]
#执行查询操作
cursor = conn.exec('select * from 表名') { |r| a<

puts r.join('')   主要是输出样式的问题 可以使用   puts r.to_s

函数用法如下:
1)OCI8.new
OCI8.new(userid, password, dbname = nil, privilege = nil)
connect to Oracle by userid and password. dbname is the connect string of Net8.
If you need DBA privilege, please set privilege as :SYSDBA or :SYSOPER.
If the Oracle client is 10g or later, you can use "//hostname_or_ip:port_no/oracle_sid" as dbname.

# sqlplus scott/tiger
conn = OCI8.new("scott", "tiger")

# sqlplus scott/tiger@orcl.world
conn = OCI8.new("scott", "tiger", "orcl.world")

# sqlplus 'sys/change_on_install as sysdba'
conn = OCI8.new("sys", "change_on_install", nil, :SYSDBA)

# sqlplus scott/tiger@//oracle_db.example.com/XE
conn = OCI8.new("scott", "tiger", "//oracle_db.example.com/XE")

2)exec

exec(sql, *bindvars)

如果你没有配置PL/SQL 没有本地的tnsname 后者不想使用本地的TNSname 就可以直自己去定义个函数:

def open_connection
tnsnames = '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = somehost.somedomain.com)(PORT = 1521)) (CONNECT_DATA = (SID = some_sid)))'
connection = OCI8.new('your_username', 'your_password', tnsnames)
end

至于open_connection函数后面是否需要配置参数,看项目需求了。如果你的项目数据库基本就是那么一个的话 就可以直接在里面定义了 

当然也可以传参数

数据库访问地址变化多的话 那就是要传参数了。。。

 

 

 

【编辑推荐】

使用oracle存储过程分页的实例

Oracle数据库备份的三个常见误区

定制正确的oracle备份策略

带您了解Oracle OS备份

Oracle EXP/IMP备份简介

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...