가 나는 대량 삽입까지 설정하는 SP에서이 코드가 실패대량 삽입 동적 SQL
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".
하지만 내 저장 프로 시저 내부
begin try
declare @sentFile nvarchar(255)
declare @bulk_cmd nvarchar(1000) = ''
declare @loadDate nvarchar(8) = Convert(nvarchar(8),@p_loadDate) -- @p_loadDate is char(8)
set @StrImportFolder = N'D:\EMVImports\'
set @sentFile = @StrImportFolder + N'etl_rnli_sent_'+ @loadDate + N'.txt'
SET @bulk_cmd = N'BULK INSERT loadSent
FROM ''' + @sentFile + N'''
WITH (
FIRSTROW = 2
,formatfile=''D:\EMVScripts\Sent_Format.xml''
)'
Print @bulk_cmd
EXECUTE sp_executesql @bulk_cmd
-- more stuff happens here
end try
을이이 오류와 함께 실패 코드 출력 :
BULK INSERT loadSent
FROM 'D:\EMVImports\etl_sent_20130529.txt'
WITH (
FIRSTROW = 2
,formatfile='D:\EMVScripts\Sent_Format.xml'
)
은 매력처럼 작동합니다. 나는 그것이 왜 sp_executesql
아래에서 실패하는지 전혀 모른다.
[여기] (http://stackoverflow.com/questions/4050790/bulk-insert-using-stored-procedure)를 확인하십시오. – Romesh
안녕하세요, 저는 그 페이지를 일찍 읽었습니다. 거기에 뭔가 빠졌습니까? – RichJohnstone
당신은'@ bulk_cmd'가'NVARCHAR '이라고 말하고 있습니다 - 당신은'@ bulk_cmd'로 함께 연결된 모든 문자열 리터럴에'N' 접두사를 사용하려고 시도합니다. 또한 : 실행하기 전에'@ bulk_cmd'를 출력 했습니까? 괜찮아 보이니? 바보 같은 질문 :'@ sent_file'에 올바른 값을 전달하고 있습니까? –