我有一个相当复杂的 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/