헐헐..필우씨 설명해줬는데 이해 못했구만.
아직도 고민중??
아래꺼 만들고
create table [삐루테이블](name varchar(30),spec varchar(30),age varchar(10));
아래거 카피해서 저장하고
psql>copy [삐루테이블] from '/tmp.txt' using delimiters '|';
하면 4row가 입력되지..
---- copy --
김황수|멋쟁이|입니다
이필우|안멋쟁이|입니다
김황수|멋\
쟁이|입니다
이필우|안멋쟁이|입\
니다
<--마지막은 엔터
---- end copy --
요지는 필드내에 CR 들어가다면 CR 바로 앞에는 반드시 ''로서 row의 끝이
아님을 표시 해주는겁니다.
그리고 dos 파일을 unix 파일로 conversion하라는 애기는
dos 파일은 CrLf가 붙는데 postgres Cr문자만 인식해,바로 Lf도
새로운 row로 인식합니다.위의 걸 그냥 win에서 만들어 conversion없이 copy 하면
아마 6row가 입력될겁니다. ''다음의 Lf때문에 새로운 row의 입력으로 잡으니...
내가 말주변이 없으니 설명이 힘들군 그냥 고대로 해봐 그럼 나머진 이해 할거야.
삐루씨 수고...^^
>>이필우 님께서 쓰시길<<
:: 안녕하세요 항상 이곳에서 많은 정보를 얻는 초보입니다 ^^
::
:: 하다 궁금해서 여쭈어봅니다.
::
:: 사용은 PostgreSQL 7.0.1을 사용중입니다.
::
:: COPY 명령어를 통하여 텍스트화일 (.txt)을 DELIMITERS를 통하여 테이블에 저장하
:: 려고 합니다.
::
:: 우선 test.txt라는 화일을 만들어 다음과 같이 저장하였습니다.
::
:: "이쁘니|고양이|2"
::
:: 테이블의 스키마는
::
:: "create table(name varchar(30),spec varchar(30),age varchar(10));"
::
:: 대충 테스트용으로 이런식으로 파일과 테이블을 작성 하였습니다.
::
:: 제가 생각하기에는 잘들어가리라 생각했는데 안들어가덥니다.
::
:: "이쁘니|고양이|2|" 이런식으로 구분자를 하나더 붙여주니 들어가는데
::
:: 어느 것이 맞는지 알고 싶구요 ...
::
:: 두번째는
::
:: "이쁘니\ <---('' 는 한줄로 인식하게 하는걸루 알고 있습니다)
:: "|고양이"
:: "2"
::
:: 이런식으로 3줄짜리라도 한 ROW에 들어가는 걸로 알고 있었는데 안되더군요
::
:: 윈도우 TXT와 유닉스와 달라 CR 문자 치환두 해보았는데 ... 무엇이 문제인지
::
:: 모르겠습니다...
::
:: 고수님들의 답변을 부탁드립니다.
::
:: 즐거운 하루가 되시길 ...
::
::
::
::
|