2012-12-18 2 views
0

일괄 처리 작업을 사용하여 세 개의 MSSQL Server 테이블을 덤프하는 것이 좋습니다. 나는 주변을 검색하여 bcp가 이러한 종류의 작업에 대해 매우 권장됨을 발견했습니다. 문서를 살펴보면 전체 테이블을 덤프하는 것이 원하는 것처럼 보였습니다. 일부 데이터가 아니라 하위 데이터 만 필요했기 때문입니다.bcp.exe 출력의 인쇄 할 수없는 문자

다음 명령을 사용하여 첫 번째 테이블에서 데이터를 추출합니다. -n 또는 -N 및 -C, 스퓨리어스, 인쇄 할 수없는 문자들의 다양한 조합

bcp glmaster out d:\ftp_root\data_xfer\glmaster.txt -n -d mu_live -t"," -S munis -U <user> -P <pwd>

움라우트 또는 거꾸로와 Y와 같이, 미러가 "L"을 반전 .csv 파일 나타난다. 또한 각 문자의 끝 부분에있는 문자와 함께 실제 데이터가 있습니다.

SQL Server 테이블에서 깨끗한 .csv 데이터를 추출하여 일괄 처리 작업에서 실행할 수있는 가장 좋은 방법은 무엇입니까?

+0

Powershell을 사용할 수 있습니다. 예를 들면 다음과 같습니다. http://billfellows.blogspot.com/2011/03/powershell-export-query-to-csv.html – sventevit

+0

이것은 훌륭한 예입니다.하지만하고 싶습니다. 이것은 가능한 한 간단합니다. PowerShell을 배워야 만한다면 다른 유틸리티를 사용하는 것이 좋습니다. – octopusgrabbus

+0

데이터가 이미 깨끗한 상태 여야합니다.'-n'으로 얻는 기본 형식은'bcp '를위한 [바이너리 형식] (http://msdn.microsoft.com/en-us/library/ms191232.aspx)입니다. exe' 만 지원하므로 일부 문자를 읽을 수 없다는 것은 놀라운 일이 아닙니다. 다시 가져 오려고 했습니까? 스크립트를 다른 도구와 함께 사용하려면 [documentation] (http://msdn.microsoft.com/en-us/library/ms190919.aspx)에 따라 문자 형식을 선택하는 것이 좋습니다. 예를 들어'-c '유니 코드 데이터가 없으면'-w'를 사용하십시오. – Pondlife

답변

2

데이터가 이미 깨끗한 상태 일 수도 있습니다. -n으로 얻는 기본 형식은 bcp.exe 전용 인 binary format이므로 일부 문자를 읽을 수 없다는 것은 놀라운 일이 아닙니다.

다른 도구와 함께 스크립트를 사용하려면 documentation을 입력하십시오. 유니 코드 데이터가없는 경우 -c, 그렇지 않으면 -w 인 문자 형식을 선택하는 것이 좋습니다.

+1

답변 해 주셔서 감사합니다. 또한 tou는이 답변을 편집하여 다른 시청자에게 더 많은 정보를 추가하고자 할 수 있습니다. 그 정보는 내가 발견 한 다른 것입니다. -c (btw 훌륭하게 작동)를 지정하면 -t를 지정하면 가변 길이 데이터가됩니다. 일단 -c가 탭으로 구분되고 -t ","를 사용하여 중단되었다는 사실을 받아 들였을 때, sed를 사용하여 \ t를 대체 할 수있었습니다. – octopusgrabbus

+1

@octopusgrabbus 글쎄, 당신이이 덧글을 추가했기 때문에 정보는 이미 여기에 있습니다 :) 그리고 문제의 설명을보다 정확하게 반영하기 위해 질문 제목을 편집했습니다. – Pondlife

+0

좋은 소리입니다. 나는 Marblehead를 깨뜨리는 새벽 같았 기 때문에 대답을 고맙게 생각한다. – octopusgrabbus

관련 문제