5

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

我想要所有的身份证。我刚从 PostgreSQL 切换到 Oracle。

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

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

4

1 回答 1

14

我找到了解决方案。

老的:ActiveRecord::Base.connection.execute("SELECT ID from features")

新的:ActiveRecord::Base.connection.exec_query("SELECT ID from features").to_a

也许有人有同样的问题。

于 2013-09-19T11:34:58.583 回答