簡體   English   中英

如何使用 PG gem 捕獲 PSQL 命令的輸出?

[英]How to capture output of PSQL command using PG gem?

我正在嘗試將數據從 s3 復制到 redshift。 在運行以下內容時:

1.9.2p320 :017 > res = psql_conn.exec("copy table_name from 's3_path' CREDENTIALS 'aws_access_key_id=xxxx;aws_secret_access_key=xxxx' delimiter '|' timeformat 'YYYY-MM-DD HH:MI:SS' REMOVEQUOTES NULL AS 'NULLL' MAXERROR AS 500 ACCEPTANYDATE TRUNCATECOLUMNS COMPUPDATE OFF;")
INFO:  Load into table 'table_name' completed, 1 record(s) loaded successfully.
INFO:  Load into table 'table_name' completed, 2 record(s) could not be loaded.  Check 'stl_load_errors' system table for details.
=> #<PG::Result:0x007ff90b9c6240> 

我的問題是如何將 INFO: rows 捕獲到變量中或知道是否發生了某些 stl_load_error?

如果相應地配置,這些最終會在日志中......我很確定你不能使用變量捕獲它們,除非暫時將( $stdout或) $stderr替換$stdout你隨后可以關閉和閱讀的東西。

從 1.2.3 開始,您可以使用copy_data

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM