• ベストアンサー

VIEWのCOPYってできないんですか?

バックアップファイルを作るのに、全データではなく、抽出したデータを吐き出したいので、VIEWを作って COPY VIEW名 TO 'ファイル名'; を実行してみたんですが、 「You cannot copy view VIEW名」 といわれて、できませんでした。 スクリプトなどでループさせるしかないんでしょうか? ご存知の方いらっしゃいましたら、ご教授ください。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#24096
noname#24096
回答No.1

copyの対象はテーブルだけです。 抽出したいのであれば、二段階になりますが  1.作業用に別テーブルを作ってinsert~selectで抽出  2.そのテーブルを対象にcopy という方法になると思います。 参考にinsertのマニュアルページを載せておきます。

参考URL:
http://www.postgresql.jp/document/pg746doc/html/sql-insert.html
seiroku55
質問者

お礼

やっぱりダメなんですね。 できるとなにかと便利なのに。 テーブルにINSERTする方法、気づきませんでした。 どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PostgreSQLの\copy コマンドとテーブル抽出

    テーブルのデータをファイル名にそのまま書き出す場合には \copy テーブル名 to ファイル名 を使用していますが、抽出したいデータだけを書き出す場合に、どのようにすればよろしいでしょうか? 以下のような抽出と書き出しを行いたいのですが。。 select * from テーブル名 where 日付 >= '20031101' どうぞよろしくお願い致します。

  • シェルスクリプトでのcopy

    いつもお世話になっています。 基本がわかっていないので、お手数ですがよろしくお願いいたします。 シェルスクリプトでvacuumやcopyを行いたいのですが、どんな感じで シェルスクリプトを作成すれば良いのか分かりません。 参考サイトで構いませんのでお助けお願いいたします。 またシェルで同じテーブルに対し\copy...fromを同時に実行した 場合、問題はないのでしょうか?(キーが重複するデータはありません。)

  • COPYを関数内で使用する時

    はじめまして。 下記のようにCOPYを関数内で使用したいと考えています。 CREATE FUNCTION test(TEXT) RETURNS void AS $$ BEGIN COPY(SELECT * FROM table1) TO $1 DELIMITER ','; END; $$ LANGUAGE plpgsql; これをpgAdmin3で実行すると$1の部分でsyntax errorとなり関数が作成できません。 $1の代わりに 'C://temp/foo.txt' と書けば通るのですが、何か良い方法はないでしょうか? やりたいことは、関数に保存先のファイル名を渡してデータをエクスポートするという処理です。 アドバイスお願いいたします。

  • Irfan viewについて教えてください。

    Irfan viewについて教えてください。  Irfan viewで画像を閲覧中に、ヘルプをクリックし、ダイアログ中の「Irfan viewについて(A)」をクリックしたら、英文のダイアログが出ました。  そのダイアログを消そうとしましたが、どうしても消せず、結局、一番下にある「click」をクリックしたら消えました。  英文のダイアログ中に、[This copy of Irfanview is registerd to you]とありましたが、このときの画像はどこかに保存されたのでしょうか。  その場所はどこでしょうか。  その画像は公開されますか。  その画像を閲覧するにはどうしたらよいでしょうか。  その画像は削除できますか。方法を教えてください。  

  • データシートビューからフォームビューへ切り替えられない。

    こんにちは。 以前、DexMachina様にご教授頂いたのですが 違うフォームを作っていたら データシートビューからフォームビューへ切り替えられないので教えてくださいませ。(アクセス2003) 前回質問:http://okwave.jp/qa4982081.html フォーム上(デザインビュー)にテーブルをドラッグしました。 (サブフォームのデフォルトのビューは、データシートビューになっていますが単票ビューに切り替えました。) 一度保存し、再度フォームを開くと、単票ビューで表示されるので その状態で、 Sub test() Forms("フォーム1").SetFocus Select Case Forms("フォーム1").Form.CurrentView Case 1 'フォームビューの場合 → データシートビューに切替 DoCmd.RunCommand acCmdSubformDatasheetView ' Forms("フォーム1").DefaultView = 2 Case 2 'データシートビューの場合 → ピボットテーブルに切替 DoCmd.RunCommand acCmdSubformPivotTableView End Select End Sub を実行すると、ちゃんとデータシートビューに切り替わります。 そしてデータシートビューからフォームビューへ切り替えようと思い 再度上記のコードを実行しても何も起こりません。 (エラーにもなりません) なぜでしょうか? ちなみに規定のビューをデータシートビューにして上記マクロを実行しても同様何も起こりません。データシートビューのままです。 MsgBox Forms("フォーム1").DefaultView で値を取得してみたら データシートビューでもフォームビューでも0が返って来ます。 何か原因がわかる方いらっしゃいましたら ご教授よろしくお願いします。

  • バッチファイルでCOPYができない。

    バッチファイルを作成するのが初めてでしてうまくいきません。 copy /Y "C:\Documents and Settings\(ユーザー名)\test.txt" sample\ というコードを実行してみたんですが、 C:\Documents and Settings\(ユーザー名)>copy /Y "C:\Documents and Settings\(ユーザー名)\test.txt" sample\ だとできて、 C:\Documents and Settings>copy /Y "C:\Documents and Settings\(ユーザー名)\test.txt" sample\ だとできません。 (実行する場所によって違うということです) どこで実行してもできるようにしたいのですがどうすればよろしいですか?

  • DOSコマンドのCOPYについて

    次の内容のバッチファイルをつくり、タスクスケジューラにて、データーを外付HDD(192.168.1.100)にバックアップしていました。 copy C:\AAA\BBB.xls \\192.168.1.100\CCC\ ところが、外付HDDにアクセス制限を設定してしまい、上記コマンドが実行できなくなりました。 アクセス制限の内容は、アクセス者のID(XXX)とアクセス者のパスワード(YYY)です。 上記コマンドが実行できる方法(構文)を教えて下さい。

  • postgreSQL EUC-JPで運用 copy

    色々試してみましたがうまく行かず質問します。今までpostgreSQL9.6で標準のUTF8で使用していましたが今回postgreSQL12にして、データベースをEUC-JPで作成しました。postgresql.confの中のclient_encodeをSJISの定義もしました。 利用環境はtomcatでアプリを実行しており、その機能のひとつにpostgreSQLのファンクションを実行し、データをcsv出力しています(copy to)しかし、保存されたcsvはUTF8で出力されてしまいます。PSQLで直接copy toを実行するとSJISで出力されます。該当のファンクションで、copy toでencodingをsjis指定すると、tomcat経由でもsjisで出力されるのは確認しました。どこの設定でtomcatからのcopy toがデフォルトがUTF8になっているのでしょうか?データベースとの接続はJDBC接続でデータソースを使用しています。 どなたか教えていただけないでしょうか。宜しくお願いします。

  • DOSコマンド(COPYコマンド)について

    DOS上でのCOPYコマンドについて確認します。 EXCELのファイルで、毎回ファイル名が変わるため、COPYコマンドで固定のファイル名にしようと思い、バッチ起動で、COPY \AAA\*.XLS \AAA\BBB.XLSで実行すると、コピー元と違うファイルサイズのBBB.XLSが作成されます。 中身を参照すると、文字化けしたものが 1レコードだけ作成されています。どうしてなのでしょうか? ※コピー元の*.XLSは、毎回 1ファイルのみです。

  • COPYコマンドに関して

    バッチファイルを作成し、以下のように記述したところ、 処理がループする形となってしまいました。 何が原因なのでしょうか。。。 教えて頂ければ幸いです。 接続(X:ドライブとして): NET USE x: \\ネットワークパス名 コピー: copy C:\TEST.txt x:\ 開放: net use x: /DELETE よろしくお願いします。