助け合いフォーラム
OSS-DB Silver(Ver2.0)
問題ID : 12103
問題を開く
「sample」テーブルの内容を各行のカラムごとにカンマで区切り、クライアント側に「sample.txt」ファイルとして出力したい。以下のうち適切な書式はどれか。(2つ選択)
この問題はプレミアムコンテンツです。
「\copy sample to 'sample.txt' csv」も正答ではないでしょうか
a
alf58
投稿日 2023/02/21
マニュアルのCOPYの構文を見ると、ファイル名は '' でくくられており、間違いだとは思えません。
以下、PostgreSQL 11.5のマニュアルから抜粋です。
COPY table_name [ ( column_name [, ...] ) ]
FROM { 'filename' | PROGRAM 'command' | STDIN }
[ [ WITH ] ( option [, ...] ) ]
COPY { table_name [ ( column_name [, ...] ) ] | ( query ) }
TO { 'filename' | PROGRAM 'command' | STDOUT }
[ [ WITH ] ( option [, ...] ) ]
ここでoptionは以下のいずれかです。
FORMAT format_name
OIDS [ boolean ]
FREEZE [ boolean ]
DELIMITER 'delimiter_character'
NULL 'null_string'
HEADER [ boolean ]
QUOTE 'quote_character'
ESCAPE 'escape_character'
FORCE_QUOTE { ( column_name [, ...] ) | * }
FORCE_NOT_NULL ( column_name [, ...] )
FORCE_NULL ( column_name [, ...] )
ENCODING 'encoding_name'
"delimiter as" の書き方は互換性の項目に「9.0より前に使用されていた」として書かれていますが11.5の正式な構文にはないため、どちらかと言えば「\copy sample to sample.txt delimiter as ','」の選択肢を誤りにすべきではないでしょうか。
スタッフからの返信
この投稿に対して返信しませんか?
s staff
2023/04/19 15:23
alf58 さん ご指摘の点を修正いたしました。 ご報告、誠にありがとうございました。