以下に示すように、Postgre DB サーバーを通過するこのバッチ ファイルを実行し、2 つの異なる SQL ファイルを実行しようとしました。
set PGPASSWORD=blah
cls
@echo on
"C:\Progra~1\pgAdmin III\1.16\psql" -d [db name] -h [server name] -p 5432 -U postgres -f C:\query1.sql
"C:\Progra~1\pgAdmin III\1.16\psql" -d [db name] -h [server name] -p 5432 -U postgres -f C:\query2.sql
しかし、問題は、query1 または query2 のコマンドのいずれかで次のエラーが発生する場合があることです。
psql: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
これは時々しか発生しないので、なぜそれが起こっているのか完全にはわかりません。なぜこれが当てはまるのか、この問題の解決策があるかどうかを誰かが説明できますか。ありがとう!
更新: 実際の Postgre アプリケーションでリモート サーバーを開こうとすると、同じエラーが発生することもあります。
また、エラー ポップアップからクリックした直後に、この Guru Hint も表示されます。
データベースのエンコード データベース VA-trac は、SQL_ASCII エンコードを使用してデータを格納するために作成されます。このエンコーディングは、7 ビット文字に対してのみ定義されています。8 番目のビットが設定された文字 (非 ASCII 文字 127 ~ 255) の意味は定義されていません。したがって、サーバーがデータを他のエンコーディングに変換することはできません。非 ASCII データをデータベースに格納する場合は、必要に応じて異なるクライアント エンコーディングへの自動変換を利用できるように、ロケール文字セットを表す適切なデータベース エンコーディングを使用することを強くお勧めします。非 ASCII データを SQL_ASCII データベースに格納すると、コード変換の問題が原因で、データベースに書き込まれたり、データベースから読み取られたりする奇妙な文字に遭遇することがあります。これにより、さまざまなクライアント プログラムやドライバーを使用してデータベースにアクセスする際に、頭の痛い問題が発生する可能性があります。
とにかく、サーバーはその後も開き、その時点からデータベースにアクセスできます.