注意:使用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行。
等...
答案 0 :(得分:0)
puts ActiveRecord::Base.connection.execute(IO.read("#{file_path}"))
答案 1 :(得分:0)
我认为我已经确定无法获取我尝试使用ActiveRecord的信息,并会尝试查看其他选项或继续使用sqlplus。