web-dev-qa-db-ja.com

pgAdmin IIIは、ジャンクを含むファイルを書き込むため、PSQLが失敗します。

同僚が別のファイルから追加のSQLステートメントを実行するために保存されたスクリプトでpsqlの\iディレクティブを使用する必要があるため、いくつかのpsqlコンソールコマンドを実行する必要があるというジレンマに遭遇しましたが、psqlがpgAdminがそれらに書き込んでいたいくつかの余分なゴミ文字のためにこれらのファイルを窒息させます:

psql:C:/tmp/junk.sql:3: ERROR:  syntax error at or near "CREATE"
LINE 1: CREATE TABLE junktable (

\iはSQLの公式部分ではないため、ここでpsqlが必要です。そのため、そのようなコマンドをデータベースのインタープリターに直接送信すると、取得する方法があったとしても実行されません。ローカルディスク上のファイルに。

簡単にするために、PgAdminのsql-editorがPostgresでNiceを再生できるようにする方法を見つけたかったので、これを回避するためだけに、職場の他の人に別のエディターをダウンロードしてインストールするように突然指示することはありません。彼らはすでにpgAdminを知っていて使用しています。

関連する質問:

3
SeldomNeedy

幸いなことに、psql.exeなどを変更する必要のないソリューションがあります。

PgAdmin IIIのオプション([ファイル]-> [オプション])をざっと見てみると、[クエリファイル]の[クエリツール]見出しの下に、[UTFファイルのBOMを書き込む]のチェックボックス切り替えオプションがあります。

PgAdmin III options: Query tool: Query file

[OK]をクリックすると、パッケージバージョンのpsql.exeで動作するファイルをPgAdminから保存できるようになります。 UTF BOMテーブルが存在し、psqlがそれらを正しく読み取れない原因となっている既存のファイルがある場合は、PgAdminのSQLクエリエディタからそれらをロードし、[名前を付けて保存]オプションを使用してそれらを所定の場所に保存できます。コメント行を追加したり、通常の保存(ctrl-S)を実行したりするなど、小さな変更を加えるだけでも機能するはずです。

2
SeldomNeedy