批量 SQL Server 查询后的变量

Variable after Bulk SQL Server Query

提问人:user2275634 提问时间:10/19/2023 最后编辑:user2275634 更新时间:10/20/2023 访问量:33

问:

当我播放此 SQL 查询时,出现此错误:

消息 4860,级别 16,状态 1,第 9
行无法批量加载。文件 “'+@Filepath+'”不存在,或者您没有文件访问权限。

这是guery:

DECLARE @XMLData as xml
DECLARE @i as INT = 01
DECLARE @Filepath as varchar(100)

SET @Filepath = 'C:\Test\File01.xml'

SET @XMLData = 
    (SELECT * FROM OPENROWSET(BULK '''+@Filepath+''', SINGLE_BLOB) AS XMLData)
select   @XMLData

我有 de 新代码。但是现在我必须集成命名空间

DECLARE @XMLData  xml
DECLARE @XMLData2 NVARCHAR(MAX)
DECLARE @Filepath varchar(100)

SET @Filepath = 'C:\Test\File01.xml'

Set @XMLData2 = 
' SELECT  
   *
FROM (  
        SELECT CAST(MY_XML AS xml)  
        FROM OPENROWSET(BULK ''' + @Filepath + ''', SINGLE_BLOB) AS T(MY_XML)  
    ) AS T(MY_XML)'

exec SP_EXECUTESQL @XMLData2
SQL-Server XML

评论

3赞 Yitzhak Khabinsky 10/19/2023
需要完全限定的文件路径作为文本。此外,它不接受参数。您应该对任务使用动态 SQL。OPENROWSET(()
0赞 user2275634 10/20/2023
谢谢,你知道如何集成命名空间吗?
0赞 Yitzhak Khabinsky 10/20/2023
确定。我可以帮你处理命名空间。请编辑您的问题,并提供所有详细信息。

答: 暂无答案