Searched by NAVER

알티베이스강좌  :  큐브리드강좌  :  오라클강좌  :  오라클팁  :  오라클사용자팁  :  Oracle Blogs  :  오라클Q&A  :  오라클자료실  :  IT컬럼/소식  :  좋은글감동  :  방명록
Oracle 질문과 답변 oracleclub.com
SQL LOADER 에서 ^M 처리문제
이앤비 : 2009-09-17 21:14  
주소복사

안녕하세요 이앤비입니다.

 

MS-SQL에서 bcp를 이용하여 데이터를 텍스트파일로 받아 ftp 에 올려 놓은뒤

 

유닉스서버에서 가져간 뒤 오라클 9i 에 SQL LOADER를 이용하여 DB 에 INSERT를 하려 합니다.

 

텍스트파일의 필드는 단지 4개이며 문자필드 3개, 마지막에 숫자필드입니다.

 

윈도우에서 텍스트파일을 열어보면 텍스트파일은 잘 생성되어 있으며 윈도우에 설치되어 있는 오라클에는

 

SQL LOADER를 이용하여 잘 INSERT  됩니다.

 

헌데 유닉스에서 FTP 로 받아 vi 로 열어보면 행의 마지막부분에 캐리지리턴값 대신

 

각 행마다 ^M 값이 모두 들어가 있습니다.

 

그래서 SQL LOADER를 이용하여 DB 에 넣으려고 하면 마지막 컬럼이 숫자컬럼이 INVALID COLUMN 이라는 에러메시지가 나면서 들어가질 않습니다.

 

필드 구분자는 | 이고  OPTIONALLY ENCLOSED BY 도 처리는 하긴 했는데

 

이 ^M 을 어떻게 넣어야 할지 난감하네요....

 

인터넷을 찾아보니 ^M 이 [Control]+v+m 이라는 게 있길래

 

컨트롤 파일의  ENCLOSED BY 부분에 '[Control]+v+m' 을 하니 정말 ^M 이라고 나오긴 하던데

 

여전히 db 에 들어가지는 않습니다.

 

유닉스는 HP 인데.... 윈도우에서 열어본 텍스트파일은 유닉스로 가면 행마지막 부분 캐리지리턴에 ^M 이 붙을수도 있다고 하던데요...

 

텍스트파일이 너무 크기(약 1기가) 때문에 ^M 을 찾아서 지울수는 없습니다.

 

SQL LOADER 의 컨트롤 파일안에서 해결을 해야 할것 같은데

 

해결방법이 없을까요? 고수님들의 많은 도움 부탁드립니다.

 

 

 

조회수 1581,  추천수 0
글 등 록 글 답 변 글 수 정 목록보기
※ 로그인하여 작성한 글만 삭제할 수 있습니다. 로그인
이름 쓰기
도움 주시는 곳