怎么连接oracle接口,通过OCI8接口连接Oracle数据库

本文介绍了如何通过Ruby的OCI8接口连接Oracle数据库,包括下载和安装ruby-oci8 gem,以及使用示例代码创建连接并执行查询操作。详细步骤帮助开发者在不依赖本地tnsname配置的情况下直接连接数据库。
摘要由CSDN通过智能技术生成

连接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函数后面是否需要配置参数,看项目需求了。如果你的项目数据库基本就是那么一个的话 就可以直接在里面定义了

当然也可以传参数

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

【编辑推荐】

【责任编辑:段燃 TEL:(010)68476606】

点赞 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值