2016-05-29 9 views
1

psqlコマンド文字列(つまりpsql -c)を含む長いコマンドラインを破り、エラーが発生しているようです。例えば、PostgreSQLの9.5とUbuntu 16.04で:psqlコマンドライン文字列の改行が重要なのはいつですか?

$ psql -c "\\dt" 

$ psql -c " 
> \\dt 
> " 

が発生している間、正常に動作します:ちょうど好奇心のうち

ERROR: syntax error at or near "\" 
LINE 2: \dt 

を、それは改行を(挿入することがOKであるときすなわち\n)をpsqlコマンド文字列に挿入しますか?

答えて

1

コマンドは、サーバによって完全に解析可能であるコマンド文字列(すなわち、それはPSQL固有の機能が含まれていない)、又は単一のバックスラッシュコマンドのいずれかでなければなりません。

https://www.postgresql.org/docs/current/static/app-psql.html

psqlが有力新しいラインとバックスラッシュコマンドを理解していないようです。

代わりに、パイプでechoコマンドを使用することもできます。これもマニュアルに記載されています。例:

$ echo ' 
> \d 
> select 1 as x;' | psql postgres 

     List of relations 
Schema | Name | Type | Owner 
--------+-------+------+---------- 
public | dummy | view | postgres 
(1 row) 

x 
--- 
1 
(1 row) 
関連する問題