![pgAdmin III はジャンクを含むファイルを書き込むため、PSQL が失敗する](https://rvso.com/image/1452844/pgAdmin%20III%20%E3%81%AF%E3%82%B8%E3%83%A3%E3%83%B3%E3%82%AF%E3%82%92%E5%90%AB%E3%82%80%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%80%E3%81%9F%E3%82%81%E3%80%81PSQL%20%E3%81%8C%E5%A4%B1%E6%95%97%E3%81%99%E3%82%8B.png)
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 を書き込む」のチェックボックス切り替えオプションがあります。
[OK] をクリックすると、psql.exe のパッケージ バージョンで動作する PgAdmin からファイルを保存できるようになります。UTF BOM テーブルが存在するために psql が適切に読み取れない既存のファイルがある場合は、PgAdmin の SQL クエリ エディターからそれらをロードし、[名前を付けて保存] オプションを使用してその場で上書き保存できます。コメント行を追加して通常の保存 (ctrl-S) を実行するなど、小さな変更を加えるだけでも機能するはずです。