Re: 問題ID: 34630
arashi1977
居住地: 広島
投稿数: 1715
引用:「copy文における」というのが誤解の元だと思います。
ここで言うサーバは「PostgreSQLのデータベースプロセス」のことです。
また、クライアントはpsqlコマンドのことです。ただし、psqlコマンドはサーバが動作しているマシン上でも外部の別のマシン上でもどちらでも実行できます。fujii0401 さんのおっしゃっている
引用:これは前者の話だけです( \q コマンドってpsqlを終了させるコマンドのはずですが…)。teratermで接続しているというのは(おそらく)「PostgreSQLのデータベースプロセスが動作しているサーバに接続して、サーバ上でpsqlコマンドを実行する」ということを想定されているのだと読み取りました。
ですが外部のマシンで実行している場合は「サーバ側にCSV形式でファイルを出力」させるには「 \copy」コマンド(psqlに仕事させる=必ずしもサーバマシンに出力されるわけではない)ではだめで、PostgreSQLのデータベースプロセスに出力処理を実行させる「COPY」コマンドじゃないとだめなんですね。
copy文における「サーバー側」、「クライエント」の定義が分かりません。
ここで言うサーバは「PostgreSQLのデータベースプロセス」のことです。
また、クライアントはpsqlコマンドのことです。ただし、psqlコマンドはサーバが動作しているマシン上でも外部の別のマシン上でもどちらでも実行できます。fujii0401 さんのおっしゃっている
引用:
例えばteratermなんかで接続をして\qコマンドを実行してサーバーホストにデータをテキストで落とすことを想定
ですが外部のマシンで実行している場合は「サーバ側にCSV形式でファイルを出力」させるには「 \copy」コマンド(psqlに仕事させる=必ずしもサーバマシンに出力されるわけではない)ではだめで、PostgreSQLのデータベースプロセスに出力処理を実行させる「COPY」コマンドじゃないとだめなんですね。
投稿ツリー
-
問題ID: 34630
(fujii0401, 2020-5-6 2:53)
- Re: 問題ID: 34630 (arashi1977, 2020-5-6 9:29)