Stále můžeme používat find_by_sql
a jednoduše zahrňte COPY do dotazu takto:
query = <<-SQL
COPY
(SELECT * FROM ORDERS WHERE ORDERS.STORE_ID = ? OFFSET ? LIMIT ?)
to '/path/temp/output.txt' WITH CSV HEADER
SQL
query_result = Order.find_by_sql([query, store_id.to_i, offset.to_i, 600000])