database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 4560 게시물 읽기
No. 4560
COPY FROM을 이용해서 data import할때.
작성자
김만호
작성일
2003-02-06 14:45
조회수
1,431

안녀하세요.

 

Mac OS에서 FileMaker라는 DB를 쓰다가 Mac OS X 기반으로 PostgreSQL DB로 전환중에 있습니다.

그래서 기존의 FileMaker에 저장되 있던 data들을 Tab-delimiter text 화일로 (table에 저장되 있는 data) 변환하고 그것을 PostgreSQL의 COPY FROM 명령어를 이용해서 data를 PostgreSQL에 import 시키고 있습니다. 이 과정에서 문제가 생겼는데요,... integer 타입의 한 필드가 table에 있는데요, 이 필드가 어떤 constraint도 없어서 기존의 시스템에서 자유롭게 입력되고 있었습니다. 그런데, COPY FROM 쓸때 만약 이 필드 (integer)에 value가 없을때 PostgreSQL가 에러를 내면서 import를 종료합니다. 메세지는 이렇습니다.

 

Error:COPY: Line 1, pg_atoi:Zero_length String...

무슨 말인지는 알겠는데, 이 필드가 not null constraint가 없어서 비어 있얻도 되는 거 아닌지... 왜, COPY FROM이 이걸 에러를 내는지 모르겠습니다.

 

어떻게 해야되죠?

 

건강하시고 좋은 하루되십시요.

이 글에 대한 댓글이 총 3건 있습니다.

PostgreSQL 에서는

NULL 하고, Zero_length String 하고를 엄격히 구분합니다.

 

즉, interger 에서 Zero_length String 이라면,

이놈은 NULL 이라고 지정해 주어야합니다.

만일 오라클의 nvl 같은 기능이 FileMaker에 있다면,

 

select nvl(a, '\N') 이런식으로 임시테이블을 만들고 그놈은 탭으로 구분된 덤프 파일로 만들고,

그놈을 copy 하면 쉽게 풀릴 것같네요.

김상기(ioseph)님이 2003-02-06 15:23에 작성한 댓글입니다.

copy명령뒤 옵션에

 

with null as ''

을 추가 하셔도됨니다.

황치영님이 2003-02-07 13:02에 작성한 댓글입니다.

ERROR: pg_atoi: zero-length string

이런 오류를 내는 것으로 봐서, 7.3.x 대의

정수형 처리같습니다.

 

null as '' 이놈으로 못 푸는것이

숫자 자료형에는 '' 문자열을 자동으로 0으로 변환하지 않을 것이라는 것이겠지요.

김상기(ioseph)님이 2003-02-07 15:15에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
4563postgres에서.... [3]
박지영
2003-02-09
997
4562데이타 베이스에 만들어져있는 데이블 목록을 가져오는 함수가 있습니까?? [2]
최현성
2003-02-08
1179
4561한글 코드 에러..(잡담) [2]
곽상영
2003-02-08
1213
4560COPY FROM을 이용해서 data import할때. [3]
김만호
2003-02-06
1431
4559ANT 에 대해서 [6]
유한선
2003-02-05
1381
4557[질문] logfile 없이 postmaster 시작하는 방법이있나요? [1]
김경환
2003-02-04
1310
4556MFC 에서 OPEN() 에저 죽어요 [1]
왕초짜
2003-02-03
1601
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다