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

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

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

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

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

物事をシンプルにするために、私は PgAdmin の sql エディターを Postgres とうまく連携させる方法を見つけたいと考えました。そうすれば、この問題を回避するためだけに職場の他の人に別のエディターをダウンロードしてインストールするように急に指示する必要がなくなります。彼らはすでに pgAdmin を知っており、使用しています。

関連する質問:

答え1

幸いなことに、psql.exe などを変更する必要のない解決策があります。

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

PgAdmin III オプション: クエリツール: クエリファイル

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

関連情報