postgres에서 STDIN에서 COPY 사용


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에 오신 것을 환영합니다. 당신은 필요가 그런 질문을 가진 (그대로) 오류 님에게 메일을 포함 할 수 있습니다. 로케일이 영어가 아닌 경우, 기본 영어 오류 메시지를 얻기 위해 스크립트를 실행하기 전에 세션에서 로케일을 재설정 할 수 있습니다. 세션 SET lc_messages = C을 "포함하는"SQL 편집기 창에서 실행하십시오.
Erwin Brandstetter

감사합니다. 로케일을 변경하는 방법을 알아 내려고 노력 중입니다. 방법을 알아내는 즉시 오류 메시지가 포함됩니다.
Eugenio Laghi

1
아, 작은 따옴표를 잊었습니다 SET lc_messages = 'C'.
Erwin Brandstetter

답변:


10

pgScript는 pgAdmin의 로컬 스크립트 확장이며 여기서는 원하지 않을 것입니다.

pgAdmin은 콘솔 응용 프로그램이 아닌 GUI stdin입니다. 쉽게 사용할 수 없습니다 . stdin컨텐츠를 스트리밍 해야하는 경우 psql \copy메타 명령 과 함께 콘솔 응용 프로그램 인 psql을 사용하십시오 .

파일이 있다면 (명백하게) COPYpgAdmin의 SQL 을 사용하십시오 .

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

postgres시스템 사용자가 파일을 읽을 수 있어야합니다 .

밀접한 관련 요청에 대한 자세한 정보 는 pgAdmin 지원 목록에 있습니다.


좋아, 내가 다음과 같은 줄로 스크립트를 실행해야한다는 것을 의미 psql postgres -p 5432 -f C:\Users\usernexus\Desktop\database05-12-2012.sql합니까? 또한 모든 것을 로컬에서 시도하고 있으며 랩톱에 pgAdmin을 설치했습니다.
Eugenio Laghi

1
@ EugenioLaghi : 정확하지 않습니다. psql -fSQL 스크립트 파일을 실행합니다. 데이터 파일 을 다루는 것 같습니다 . 내 답변을 업데이트했습니다.
Erwin Brandstetter

감사! 처음에는 스크립트를 실행하려고했지만 이제는 파일에서 데이터를 복사하는 방법을 알아 냈습니다! 어제 저녁 나는 이해하기에 너무 피곤했다 .. :)
Eugenio Laghi

postgres 사용자가 파일을 읽을 수 있는지 어떻게 확인합니까? 내 파일 (파일이있는 곳)에서도 txt 파일이 발생했지만 권한이 여전히 거부되었습니다.

@Geo : Postgres 버전, OS를 포함한 새로운 질문 을 시작 하십시오. 파일이있는 곳, 사용한 직접 명령 및 기타 관련 사항이있는 경우
Erwin Brandstetter
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.