2016-10-18 4 views
0

대용량 데이터가있는 FLAT FILE (TARABITES)에서 데이터를 청크/일괄 처리로로드하려고합니다. 1-10000,10001-20000 등과 같이 청크로로드하려는 경우 스테이징 테이블에 대한 메모리가 제한되어 있으므로 스테이징 테이블에로드하려고합니다. 일단 데이터가 준비 테이블에로드되면 최종 테이블에 데이터를로드하려고합니다. 어떤 사람이 변수로 ID 번호에서 TO ID 번호까지 제공 할 수있는 C# 스크립트를 제안 할 수 있습니까?C#을 사용하여 청크/일괄 처리 된 데이터를 플랫 파일에서 sql 테이블로 가져 오기

미리 감사드립니다.

답변

0

저는 과거와 비슷한 것을했습니다. 다음은 대략적인 구문입니다. 이것은 Sql to Sql 용입니다. 대신에 ODBC를 사용하여 텍스트 파일을 쿼리하는 방법에 대한 링크를 참조하십시오.

 int Start = 1; 
     int End = 10000; 
     using (SqlConnection SqlCon = new SqlConnection()) 
     { 
      string Sql = $"Select * From Table Where Id Between {Start} and {End}"; 
      SqlCommand SqlCmd = new SqlCommand(Sql); 
      SqlDataReader reader = SqlCmd.ExecuteReader(); 

      SqlBulkCopy bulk = new SqlBulkCopy(SqlCon); 
      bulk.DestinationTableName = "StagingTable"; 
      bulk.WriteToServer(reader); 
     } 

http://www.c-sharpcorner.com/article/accessing-text-files-using-odbc-data-provider/

+0

안녕 @Joe C, 답장을 보내 주셔서 감사합니다. 그러나 어떤 사람이 몇 가지 해결 방법을 제안하거나 플랫 파일 (내가 1-1000과 같은 의미)에서 제한된 수의 레코드를 읽고 SQL 테이블에로드해야하는 스크립트를 제공하면 더 유용 할 것입니다. 다시 다음 번에 (1001-3000)을 원한다면 SQL 테이블에로드하십시오. 제한된 레코드 만로드하고 다음 번 최종 테이블에로드해야하므로 스테이징 테이블의 공간이 매우 제한됩니다. 친절하게도, 어떤 사람이 ssis/ssis 스크립트 구성 요소에이 요구 사항을 제공하는데 도움이됩니다. – user3518078

+0

이 스크립트는 SSIS에서 사용할 수 있습니다. –