문법에 대한 설명을 드리겠습니다.
일단 MS SQL 자료를 ASCII 파일로 덤프를 받습니다. (파일이름이 dump_file.txt 라고 가정합시다) 그때 field 사이에는 \t (tab 문자) 로서 구분을 하고, 줄간은 \r\n 문자로 구분을 하게 됩니다. (이것은 DOS mode 에서 할수없이 그렇게 되겠지요)
이것을 리눅스 서버로 옮긴다음 vi /b dump_file.txt 하셔서 :%s/^M//g (여기서 ^M 이라는 것은 Ctrl/v Ctrl/m 두개의 control 문자를 눌러서 입력하게 됩니다.) 와 같이 명령을 주어서 ^M 문자를 없앱니다. (이것은 DOS 에서 줄바꿈 문자가 \r\n 인 것에 기인합니다)
다음으로 다음과 같이 명령을 주면 됩니다.
psql db_name
로 원하는 디비로 접속을 합니다.
copy table_name from '/path/to/dump_file.txt'
using delimiters '\t';
이렇게 명령을 주시면 원하는 테이블로 입력이 가능합니다. 처음 시도하신다면 아마도 몇번의 error & try 를 하셔야 할 것 같습니다.
Description: Copies data between files and tables
Syntax:
COPY [ BINARY ] table [ WITH OIDS ]
FROM { 'filename' | stdin }
[ [USING] DELIMITERS 'delimiter' ]
[ WITH NULL AS 'null string' ]
COPY [ BINARY ] table [ WITH OIDS ]
TO { 'filename' | stdout }
[ [USING] DELIMITERS 'delimiter' ]
[ WITH NULL AS 'null string' ]
>>박경희 님께서 쓰시길<<
:: 답변해 주셔서 감사합니다.
:: 그런데 이렇게만 봐서는 잘 이해가 가질 않네요..
:: 자세한 설명도 함께 써주신다면 정말루 감사하겠습니다.
::
|