2013-07-25 2 views
1

기본적으로 CSV 파일을 SQL Server 2008 R2 데이터베이스로 가져 오는 과정이 필요합니다. CSV 파일은 직원의 PR 시간으로 "관리자"가 채워지는 Excel 파일에서 생성됩니다. 여기에는 직원이 작업하고있는 작업 및 단계와 같은 추가 정보와 장비 (사용 된 경우)의 시간 수가 포함됩니다.SQL Server 2008 - TSQL CSV 파일 읽기

일단 CSV 파일을 생성하면 일반적으로 일반적인 "열"기반 CSV 파일이 아닙니다. 이는 "행"기반의 CSV 파일과 비슷합니다. 각 행은 고유합니다. 이 문제로 인해 필자는 BULK 삽입 또는 OPENROWSET을 사용하여 SQL에 직선 덤프를 수행 할 수 없습니다. 적절한 열이 채워진 데이터가있는 임시 테이블을 작성해야합니다.

행의 해당 필드의 "위치"를 기반으로 CSV 파일 내의 필드를 사용하려고합니다.

기본적으로 데이터의 위치는 모든 CSV가 TEMPLATE 파일을 기반으로하므로 동일하게 유지됩니다. 따라서 필자는 SQL 코드를 사용하여 CSV 파일을 탐색하여 해당 필드를 기반으로 올바른 필드를 찾습니다. 행의 위치. 저는 여러분이 제가 여기서 성취하고자하는 것을 더 잘 이해할 수 있기를 바랍니다. 긴 글자로 죄송합니다. https://www.simple-talk.com/sql/t-sql-programming/reading-and-writing-files-in-sql-server-using-t-sql/

(파일에서 읽기 라인)

사용자 정의 SQL 기능을 통해 임시 테이블에 CSV 파일을 읽습니다 :

나는 조금 연구하고 여기에 지금까지와 온거야

이것은 흥미 롭습니다. 전체 파일을 BLOB으로 덤프 한 다음 데이터를 탐색 할 수 있습니다. http://www.mssqltips.com/sqlservertip/1643/using-openrowset-to-read-large-files-into-sql-server/

마지막으로이 필수 항목은 행을 분할하고 행당 구분 레코드를 만듭니다. 흥미 롭습니다. http://ask.sqlservercentral.com/questions/17408/how-to-read-a-text-file.html

누구든지이 과정을 밟을 수있는 제안이나 단계가 있다면 크게 감사하겠습니다.

개혁가 : 여기에 있으면 안되는 내용 (특히 링크)을 게시 한 경우 언제든지 제거하십시오. 내가 한 경우 사과드립니다.

감사합니다 ... 몇 가지 긍정적 인 답변을 듣고 싶습니다! :)

따뜻한 안부, PRANAV

+0

Excel에서 직접로드하는 것이 궁금한가요? – tkendrick20

+0

UNPIVIOT/PIVOT 기능이 도움이됩니까? 즉 파일을 덤프 한 다음 저장된 proc을 사용하여 원하는 방식으로 데이터를 정렬하십시오. –

+0

@ tkendrick20 정확히 엑셀 파일이 아니기 때문에 Excel을 직접 사용할 수 없습니다. 명확한 "열"이 없습니다. 해당 Excel 파일에서 생성 된 CSV 파일은 기본적으로 관련 FIXED 열이없는 데이터 "행"이있는 파일입니다. – SillyCoda

답변

0

파일이 너무 크지 않으면, 또 다른 옵션은 매크로 VBA를 사용하여 Excel에서 파일을 사후 처리하는 것입니다. 물론 Excel 개체 모델과 VBA를 사용하여 속도를 높여야하지만 녹음 기능을 사용하면 상당히 간단 해집니다. VBA 접근법의 장점 중 하나는 행 단위로 처리하기를 원하며 VBA가 더 좋지만 SQL은 집합 기반 작업에 더 좋습니다.