gpt4 book ai didi

sql-server - 批量插入失败,因为动态 sql

转载 作者:行者123 更新时间:2023-12-03 16:50:45 25 4
gpt4 key购买 nike

我在设置批量插入的 SP 中有此代码:

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

在我的存储过程中,这失败并出现以下错误:

Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".



但是代码打印出来了:
BULK INSERT loadSent    
FROM 'D:\EMVImports\etl_sent_20130529.txt'
WITH (
FIRSTROW = 2
,formatfile='D:\EMVScripts\Sent_Format.xml'
)

奇迹般有效。我不知道为什么它会在 sp_executesql 下失败.

最佳答案

我正在使用很多类似的查询。它正在发挥作用。

声明 @filepath nvarchar(500)
SET @filepath = N'e:\5-digit Commercial.csv'

声明 @bulkinsert NVARCHAR(2000)

设置@bulkinsert =
N'BULK INSERT ZIPCodes from ''' +
@文件路径 +
N''' WITH (FIRSTROW = 2, FIELDTERMINATOR = '','', ROWTERMINATOR = ''\n'')'

EXEC sp_executesql @bulkinsert

你如何设置@sentFile 的值?

关于sql-server - 批量插入失败,因为动态 sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18147178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com