2016-12-01 3 views
1

SSIS 패키지가 있습니다. 그 안에는 두 개의 패키지 실행 태스크 요소가 있습니다. 두 패키지는 순서대로 실행되도록 링크되어 있습니다.SSIS 패키지 오류 - BULK INSERT "파일이 없습니다."

패키지 하나 - 외부 사이트에서 다운로드 CSV 파일 (SalesForce.com)

E : \ 세일즈 포스 \ MSSQL_Import \ PricebookEntry.csv

E : 매핑 된 네트워크 드라이브입니다.

패키지 2 - SQL 작업으로 CSV 파일의 내용을 빈 테이블에 삽입하십시오. 두 번째 SSIS 패키지가 트리거 될 때

BULK INSERT SalesForce.dbo.PriceBookEntry 
FROM 'E:\SalesForce\MSSQL_Import\PricebookEntry.csv' 
WITH 
(
FIRSTROW = 2, 
FIELDTERMINATOR = '\t', 
ROWTERMINATOR = '\n', 
CODEPAGE = 'ACP',  
ERRORFILE = 'E:\SalesForce\Data_Loader\Logs\Error\Bulk_Insert\BI_PriceBookEntry.csv', 
TABLOCK 
) 

나는 다음과 같은 오류가 점점 오전 :

[Execute SQL Task] Error: Executing the query "BULK INSERT SalesForce.dbo.PriceBookEntry FROM..." failed with the following error: "Cannot bulk load. The file "E:\SalesForce\MSSQL_Import\PricebookEntry.csv" does not exist.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.

나는 파일의 위치를 ​​확인했다. 경로와 철자가 좋습니다. 스크립트가 실행되는 동안 파일이 존재합니다.

나는 파일을 C :에 저장하려고 시도했다. BULK INSERT 패키지가 여전히 실패합니다.

관리 스튜디오에서 BULK 쿼리를 명령으로 실행 했으므로 정상적으로 작동합니다.

다른 패키지 안에 패키지를 함께 연결하면 BULK INSERT가 실패합니다. 개별적으로 SSIS 패키지를 실행하면 제대로 작동합니다.

동일한 작업을 수행하고 잘 작동하는 다른 SSIS 패키지가 있습니다.

저는 가능한 해결책을 찾기 위해 항상 높거나 낮게 인터넷 검색을 해왔습니다. 누구든지 문제가 될 수있는 아이디어가 있습니까?

+1

'E :는 매핑 된 네트워크 드라이브입니다. '일반적으로 근본적인 원인은 SSIS 패키지를 실행하는 계정에는 개발 한 사용자와 동일한 드라이브가 매핑되지 않기 때문입니다. C 드라이브에 놓았을 때 작동하지 않는다는 사실은 그것이 권한 문제 일 수도 있다고 생각하게 만듭니다. 처음 컷을 할 때 어디에서나이 작업을 지정 했으므로 어디에서 잘못했는지 모르겠습니다. – billinkc

답변

0

문제점을 발견했습니다.

빠른 응답은 SSIS에서 BULK INSERT 명령이 실행되기 전에 다운로드중인 CSV 파일이 완료되지 않은 것입니다. 따라서 SQL Server는 파일에 액세스 할 수 없습니다.

이전 작업은 아주 작은 파일 (2000 줄 정도)에서만 작동했습니다. 이 직업은 훨씬 더 많이 일하고 있습니다 (~ 1mil 선).

파일 다운로드가 완료 될 때까지 BULK INSERT를 보류해야합니다.