2016-07-29 9 views
2

私はたくさんのことを知りましたが..psqlのコマンドラインクエリで一重引用符をエスケープするにはどうすればよいですか?

psqlのコマンドラインクエリで一重引用符をエスケープするにはどうすればよいですか?エラーで

psql -t -A -F $'\t' postgresql://zzzz:5432/casedb -U qqqq -c 'select id,ext_ids ->> 'qwe' as qwe from data ORDER BY qwe' > /jdata/qwe.tab 

結果

ERROR: column "qwe" does not exist 
LINE 1: select id,ext_ids ->> qwe as qwe from data... 

答えて

1

dollar-quoted stringsを使用できます。

select id,ext_ids ->> $$qwe$$ as qwe from data ORDER BY qwe; 
-- or 
select id,ext_ids ->> $anything$qwe$anything$ as qwe from data ORDER BY qwe; 
3

あなただけ引用しSQLのためのシェルのクォートのための二重引用符(")と単一引用符(')を使用することができます:Postgresので

psql -t -A -F $'\t' postgresql://zzzz:5432/casedb -U qqqq -c "select id,ext_ids ->> 'qwe' as qwe from data ORDER BY qwe" > /jdata/qwe.tab 
# Here ------------------------------------------------------^---------------------------------------------------------^ 
関連する問題