postgresでのCOPY FROM STDINの使用


14

私はPostgresを使い始めたばかりで、その機能を理解するためにサンプルdbを作成しようとしています。周りを見て、pgfoundry.orgでいくつかのスクリプトを見つけました。以前はOracleとMS-SQLの両方を使用していたため、コマンドは理解できますが、実行中のすべてのスクリプトは「COPY FROM」命令に到達するとエラーを返します。より正確には、指定されたテーブルに挿入される最初の要素でエラーがスローされます。

クエリとpgScriptの両方としてスクリプトを実行しようとしましたが、どちらの方法でもCOPY FROMの後の最初の行でエラーが発生します。

pgAdminIIIを使用していて、StackBuilderを使用してPostgreSQL 9.2.4.1をDBドライバーとしてインストールしました。このコマンドの実行を妨げている基本的な構成が欠落している場合がありますか、それが機能するかを理解していませんか?

編集:
エラーは次のとおりです。

ERROR:  syntax error at or near "7"
LINE 5600: 7 4 13 37 2012-03-10 16:41:43.797787 2012-03-10 16:41:43.797...
           ^

********** Error **********

ERROR: syntax error at or near "7"
SQL status: 42601
Char: 140891`

テキストは次のとおりです。

COPY action_abilitations (id, group_action_id, partecipation_role_id, group_id, created_at, updated_at) FROM stdin;
7   4   13  37  2012-03-10 16:41:43.797787  2012-03-10 16:41:43.797787`

1
dba.SEへようこそ。あなたは必要とするような質問で(そのまま)エラーmesssageを含めること。ロケールが英語以外の場合、スクリプトを実行する前にセッションでロケールをリセットして、デフォルトの英語のエラーメッセージを取得できますSET lc_messages = C。セッションを「含む」SQLエディタウィンドウで実行するだけです。
アーウィンブランドステッター

おかげで、ロケールを変更する方法を理解しようとしています。その方法を理解したらすぐにエラーメッセージを含めます。
ユージェニオラギ

1
ああ、私は一重引用符を忘れていましたSET lc_messages = 'C'
アーウィンブランドステッター

回答:


10

pgScriptはpgAdminのローカルスクリプト拡張であり、おそらくここで必要ありません。

pgAdminはGUIであり、コンソールアプリケーションではありませstdinん- 簡単に使用できるものはありません。stdinコンテンツをストリーミングする必要がある場合は、コンソールアプリケーションであるpsqlを使用します-psqlの\copyメタコマンドを使用します。

ファイルがある場合は(明らかにそうです)、COPYpgAdminのSQL を使用します。

COPY action_abilitations (id, group_action_id, ...)
FROM 'C:\Users\usernexus\Desktop\database05-12-2012.sql';

ファイルは、postgresシステムユーザーが読み取り可能である必要があります。

この密接に関連したpgAdminサポートリストへのリクエストの詳細。


OK、次のような行でスクリプトを実行する必要があるということpsql postgres -p 5432 -f C:\Users\usernexus\Desktop\database05-12-2012.sqlですか?また、私はすべてをローカルで試しています。ラップトップにpgAdminをインストールしました。
ユージェニオラギ

1
@EugenioLaghi:正確ではありません。psql -fSQLスクリプトファイルを実行します。データファイルを扱っているようです。回答を更新しました。
アーウィンブランドステッター

ありがとう!最初はスクリプトを実行しようとしていましたが、少なくともファイルからデータをコピーする方法を見つけました!昨日の夜、私は理解するのに疲れすぎていた.. :)
ユージェニオラギ

postgresユーザーがファイルを読めるようにするにはどうすればいいですか。デスクトップ(ファイルが置かれている場所)でさえ、txtファイルに対してそれを実現しましたが、許可はまだ拒否されています。

@Geo:起動してください新しい質問 ... Postgresのバージョン、OS、ファイル嘘、該当する場合は、使用してより多くの逐語的なコマンドを含むを
アーウィンBrandstetter
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.