안녕하세요 배치파일을 사용할 일이 종종 있는데요. bcp 명령어를 이용하여 대용량의 데이터를 내보내거나, 입력을 하는 경우가 있습니다. 예시와 함께 방법을 알아 보도록 하겠습니다.
목차
bcp란?
데이터 베이스의 자료를 SQL server에 입력할때 사용하는 기능입니다. 대용량의 파일을 업데이트 하거나 다운로드를 할때 사용하는 대용량 데이터 전용 기능으로 생각하하면 편하겠습니다. 주로 배치 파일(Batch File)에서 사용되게 됩니다. 배치 파일이란 MS-DOS의 명령문들을 한번에 실행 할 수 있는 명령어 스크립트로 여러가지의 작업을 한번에 실행하기에 용이합니다.
샘플 프로그램의 개요
bcp명령을 사용하여 다음 테이블"EMPLOYEE"의 레코드를 csv파일로 내보냅니다.
배치 파일의 내용코드
@echo off
REM서버 이름(서버의 PC이름\인스턴스 이름)
set dbServer=localhost\SQLEXPRESS
REM데이터베이스 이름
set dbName=sampleDB
REM사용자 이름
REM set userName=sampleUser
REM패스워드
REM set password=password
REM출력 폴더
set outputFolder=C:\Users\user\Desktop\sqlserver_sample\export\
REM #####################
REM Windows인증의 경우
REM #####################
REM★ 테이블 이름만 지정하고 전 기록을 취득한다
bcp EMPLOYEE out %outputFolder%EMPLOYEE.csv -S %dbServer% -d %dbName% -T -c -t ","
REM★ SELECT문을 지정하고 조건에 합치한 레코드를 취득한다
REM bcp "SELECT TOP(1) * FROM EMPLOYEE" queryout %outputFolder%EMPLOYEE.csv -S %dbServer% -d %dbName% -T -c -t ","
REM #####################
REM SQL Server인증의 경우
REM #####################
REM★ 테이블 이름만 지정하고 전 기록을 취득한다
REM bcp EMPLOYEE out %outputFolder%EMPLOYEE.csv -S %dbServer% -d %dbName% -U %userName% -P %password% -c -t ","
REM★ SELECT문을 지정하고 조건에 합치한 레코드를 취득했다
REM bcp "SELECT TOP(1) * FROM EMPLOYEE" queryout %outputFolder%EMPLOYEE.csv -S %dbServer% -d %dbName% -U %userName% -P %password% -c -t ","
pause
배치 파일 실행
복사를 시작합니다...
2 행이 복사되었습니다。
네트워크 패킷 사이즈 (바이트): 4096
클락 타임 (밀리초) 합계 : 1 평균 : (2000.00 行/秒)
계속하기 위해서는 키를 눌러주세요 . . .
결과
변환된 csv파일을 텍스트 에디터로 열면 아래의 레코드가 출력된 것을 확인할 수 있습니다.
00001,鈴木一郎,男,営業課
00002,佐藤次郎,男,経理課
bcp 기능을 이용하여 데이터베이스 및 테스트를 하는 경우가 많이 있습니다.
특히 일본에서 배치 프로그램을 개발하고 있으시면 더욱 그렇겠습니다. 그럼 여러분의 코드에 에러가 없기를 기원하면서 마치겠습니다.
반응형
'IT 및 기타' 카테고리의 다른 글
C# 유용한 단축키 모음 (0) | 2021.10.16 |
---|---|
릿코드(LeetCode) int 배열 코딩테스트(two sum) 문제 및 풀이 (0) | 2021.09.29 |
당신이 곧 살게 될 미래, 메타버스는 무엇인가? (0) | 2021.09.18 |
청년 고독사등 심각한 구직난, 해외에 기회가 있을 수 있다 (0) | 2021.06.18 |
일본 매체가 뽑은 'PS5' 추천 게임을 알아보자 (0) | 2021.03.07 |
댓글