iT邦幫忙

0

MSSQL 迴圈內執行bulkinsert

各位前輩好
目前要依照某張table內的檔案清單
將檔案內容匯入到另外一張表內

在執行時只要放在迴圈內至型
均會跳出錯誤碼123(檔案名稱、目錄名稱或磁碟標籤語法錯誤)

但是將@cmd的內容秀出來一行一行執行是沒問題的
麻煩各位前輩協助點出問題點,謝謝

while (@@fetch_status = 0)
begin
	set @cmd = 'bulk insert testdb.dbo.'+ @table_name +' from ' + '''' + 'D:\'+ @fn +' ' + '''' + ' with( fieldterminator =' + '''' + ',' + '''' + ', rowterminator =' + '''' + '0x0a' + '''' + ')'
	--select @cmd
	exec (@cmd)
	fetch next from myCursor
		into @fn
end
將select 改為print之後發現中間藏了一個換行符號
修正之後就能正常執行了
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
純真的人
iT邦大師 1 級 ‧ 2022-01-21 15:00:44
最佳解答

答案大概是這個文章吧~
你的資料的紀錄~有隱藏的符號在路徑上吧~
導致執行檔案路徑檢查時錯誤~
https://stackoverflow.com/questions/25689889/sql-server-bulk-insert-format-file-could-not-be-opened

若不是的話~你再參閱其他問題解答吧~
https://www.google.com/search?q=bulkinsert+error+code+123

我要發表回答

立即登入回答