ruby-on-rails - Rails 和 Oracle : execute sql statement and get all data

标签 ruby-on-rails oracle ruby-on-rails-4

我有一个相当复杂的 sql 语句,它是即时创建的。但是对于一个简单的查询也存在同样的问题,所以我以这个为例。

我有一个功能模型。我可以打电话Feature.count --> 4

但是,如果我尝试使用 ActiveRecord::Base.connection.execute("SELECT ID from features") 获取所有功能 ID结果是 OCI8::Cursor目的。我不知道如何从中获取数据。

如果我尝试 ActiveRecord::Base.connection.execute("SELECT ID from features").fetch我收到 [1] .与 xyz.fetch_hash我收到 {"ID" => 1} .

我想要所有的ID。
我刚从 PostgreSQL 切换到 Oracle。

使用 PostgreSQL,我使用 ActiveRecord::Base.connection.execute("SELECT ID from features").to_a 获取了所有数据,但是 to_a不存在使用 activerecord-oracle_enhanced-adapter gem ( *** NoMethodError Exception: undefined method 'to_a' for #<OCI8::Cursor:0x00000007028aa8> )。

我正在使用 Ruby 2.0 和 Rails 4。到 Oracle 数据库的连接正在工作,除了我手动创建的语句。

最佳答案

我找到了解决方案。

旧:ActiveRecord::Base.connection.execute("SELECT ID from features")
新:ActiveRecord::Base.connection.exec_query("SELECT ID from features").to_a
也许有人有同样的问题。

关于ruby-on-rails - Rails 和 Oracle : execute sql statement and get all data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18890376/

相关文章:

ruby-on-rails - 给定一个带句号的输入,如何让所有内容都跟在它后面?

mysql - 选择所有具有非空关联记录的记录

ruby-on-rails - Ruby Hash 和 ActiveSupport HashWithIndifferentAccess 的区别

ruby-on-rails - 如何使用 Rails 4 以一种形式添加多个多对多字段?

asp.net - ODP.net 连接池 : ClientID, 客户端标识符从第一个登录的用户开始不会改变

javascript - NJS-024 : memory allocation failed in OracleDB - Nodejs

ruby-on-rails - 具有 ActiveAdmin 和 Rails 4 : data not saved 的多个 HABTM 属性

ruby-on-rails - 模型对象的 Rails4 : undefined method `committed?

带有提供功能的 Rails HTML 编码/转义

java - 使用 hibernate 和 Oracle 将 Clob 转换为字符串