PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Rails truy vấn thô cho định dạng csv, được trả về qua bộ điều khiển

AFAIK bạn cần sử dụng copy_data trên kết nối cơ sở dữ liệu PostgreSQL cơ bản cho việc này:

Và thậm chí còn có một ví dụ:

conn.copy_data "COPY my_table TO STDOUT CSV" do
  while row=conn.get_copy_data
    p row
  end
end

Trình bao bọc của ActiveRecord cho kết nối cơ sở dữ liệu thô không biết copy_data là gì nhưng bạn có thể sử dụng raw_connection để mở nó ra:

conn = ActiveRecord::Base.connection.raw_connection
csv  = [ ]
conn.copy_data('copy stories to stdout with csv header') do
  while row = conn.get_copy_data
    csv.push(row)
  end
end

Điều đó sẽ để lại cho bạn một mảng các chuỗi CSV trong csv (một hàng CSV cho mỗi mục nhập mảng) và bạn có thể csv.join ("\ r \ n") để nhận dữ liệu CSV cuối cùng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhận giá trị trường từ bản ghi khiến điều kiện tổng hợp là đúng

  2. Làm cách nào để chèn giá trị 'NULL' vào cơ sở dữ liệu PostgreSQL bằng Python?

  3. Cách đặt một số biến ngữ cảnh cho người dùng / kết nối

  4. Nhận danh sách bản ghi đầu tiên cho mỗi nhóm

  5. Làm thế nào để sử dụng ilike sqlalchemy trên trường mảng postgresql?