我使用ruby-2.3和oci-8 gem。我想让select query
stm = "select * from DATASERVICEUSERS t where boss<>100 and loginad is not null"
res = CONN.exec(stm).fetch_hash do |row|
#do something with row
end
CONN.logoff例如,我如何查询整个结果以放入数组或散列中,而不是循环遍历每条记录?我只需要此请求结果的元素集合。
发布于 2018-09-03 18:18:58
Oci-8没有证明这一点。.exec方法生成一个游标,您需要像代码演示那样处理该游标。您可以使用字段数组或散列填充数组。
下面是一个数组的示例
records = []
conn.exec(sql) { |record| records << record}
# records: [["xxxx", "xxxx"], ["yyyy", "yyyy"], ..]发布于 2019-09-01 22:10:19
我知道这是一个相当古老的问题,但我遇到过这个问题。我不太精通ruby,但是oci8 2.2.7实际上提供了fetch_hash
https://www.rubydoc.info/gems/ruby-oci8/OCI8/Cursor#fetch_hash-instance_method
以下是我的用例中的一个示例:
records = []
dataCursor = @odb.exec(queryUUNRData)
while((data = dataCursor.fetch_hash) != nil)
records.push data
end
dataCursor.close生成的数据集已将列名作为哈希键包括在内
https://stackoverflow.com/questions/40989687
复制相似问题