如何使用Ruby Active Record获取sql脚本的输出?

时间:2018-01-16 23:36:32

标签: ruby oracle activerecord sqlplus oci

注意:使用Ruby 2.4,oci8 / oracle增强适配器。

我正在使用sqlplus来执行我的一些DDL / DML。基本上这个:

system "echo / | sqlplus  #{db.username}/\"#{db.password}\"@#{db.host}:#{db.port}/#{db.sid} @\"#{file_to_execute}\" > #{@SQLOUT_LOG}"

我想放弃使用sqlplus并改用活动记录。所以我得到了这个工作:

ActiveRecord::Base.connection.execute(IO.read("#{file_path}"))

这基本上是一样的,除了:我无法访问'脚本输出'我从SQLplus(甚至是SQLDeveloper)获得的。这个'执行'函数返回表行,我通常不关心或不需要。

我只想在运行后输出脚本的输出结果字符串。例如:

  

程序MYPROCEDURE编译

     

插入3行。

等...

2 个答案:

答案 0 :(得分:0)

puts ActiveRecord::Base.connection.execute(IO.read("#{file_path}"))

答案 1 :(得分:0)

我认为我已经确定无法获取我尝试使用ActiveRecord的信息,并会尝试查看其他选项或继续使用sqlplus。