OCI操作数据库

DatebaseOs函数:

require 'oci8'
=begin
require "yaml"
require 'pathname'
require 'DatebaseOs'

file_path=File.join(Pathname.new(File.dirname(__FILE__)).realpath,'yaml.yml')
open_file =File.open(file_path)                 
ruby_obj = YAML::load(open_file)
=end
=begin
' **  函数名:   connection_config()
' **  输  入:   host,port,user,password,server
' **  功能描述: 数据库配置文函数
                 'host                 IP地址
                 'port                 端口号
                 'user                 用户名
                 'password             密码
                 'server               服务器地址
' **  调用方法: connection_config(host,port,user,password,server)
' **  创建人:  
' **  创建日期: 2009年11月13号
' **  修改记录:   
=end

def connection_config(host,port,user,password,server)
    tnsnames = "(DESCRIPTION=(ADDRESS =(PROTOCOL = TCP)(HOST =#{host})(PORT = #{port}))(CONNECT_DATA = (#{server})))"
    connection = OCI8.new(user, password, tnsnames)
  end
 
=begin
' **  函数名:   open_connection()
' **  输  入:   host,port,user,password,server
' **  功能描述: 数据库记录查询返回的是数组
                 'host                 IP地址
                 'port                 端口号
                 'user                 用户名
                 'password             密码
                 'server               服务器地址
' **  调用方法: open_connection(host,port,user,password,server)
' **  创建人:   
' **  创建日期: 2009年11月13号
' **  修改记录:   
=end

def open_connection(host,port,user,password,server)
    connection =  connection_config(host,port,user,password,server)
    yield connection
    connection.logoff
  end
 
=begin
' **  函数名:   perform_query()
' **  输  入:   host,port,user,password,server
' **  功能描述: 数据库字段查询返回的是数组
                 'host                 IP地址
                 'port                 端口号
                 'user                 用户名
                 'password             密码
                 'server               服务器地址
' **  调用方法: perform_query(host,port,user,password,server)
' **  创建人:   
' **  创建日期: 2009年11月13号
' **  修改记录:   
=end

def query_db_record(host,port,user,password,server)
    a=[]
    b=[]
    open_connection(host,port,user,password,server) { |connection|
    describe_table = connection.describe_table(@tablename)
    $len =describe_table.num_cols
    columns=describe_table.columns
    connection.exec(@query) do |row|
              row.each do |column| a<<column.to_s + "\t" end end      
    0.step(a.size-1,$len) do |i|
    b<<a.values_at(i..i+($len-1)).to_s.split("\n") end    
      }
      return b
end

=begin
' **  函数名:   query_db_single()
' **  输  入:   host,port,user,password,server
' **  功能描述: 记录查询
                 'host                 IP地址
                 'port                 端口号
                 'user                 用户名
                 'password             密码
                 'server               服务器地址
' **  调用方法: perform_query(host,port,user,password,server)
' **  创建人:   
' **  创建日期: 2009年11月13号
' **  修改记录:   
=end

def query_db_single(host,port,user,password,server)
    a=[]
    b=[]
    open_connection(host,port,user,password,server) { |connection|
    describe_table = connection.describe_table(@tablename)
    $len =describe_table.num_cols
    columns=describe_table.columns
    connection.exec(@query) do |row|
              row.each do |column| a<<column.to_s + "\t" end end      
    0.step(a.size-1,1) do |i|
    b<<a.values_at(i).to_s.split("\n") end    
      }
      return b
end


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值