gpt4 book ai didi

sql - 如何在 Openrowset 命令中使用变量

转载 作者:行者123 更新时间:2023-12-03 02:08:09 24 4
gpt4 key购买 nike

我正在尝试在 SQL Openrowset 命令中使用变量文件路径。我知道它无法显式接受变量,并且我需要使用动态 SQL。

目前有效的方法 -

SELECT @file_stream = CAST(bulkcolumn AS VARBINARY(MAX))
FROM OPENROWSET(BULK 'C:\Temp\print4.pdf', SINGLE_BLOB) AS x

但是如果我尝试使用我的变量文件路径

declare @file_stream VARBINARY(MAX)

declare @filePath NVARCHAR(128)
set @filePath = 'C:\Temp\print4.pdf'

set @command = N'SELECT @file_stream = CAST(bulkcolumn AS varbinary(MAX))
from OPENROWSET(BULK ' + @filePath + ',
SINGLE_BLOB) ROW_SET'

EXEC sp_executesql @command, @filePath, @file_stream;

我收到错误“消息 137,级别 15,状态 2,第 15 行”必须声明标量变量“@filePath”。'

我确信这是一个语法问题,但还无法弄清楚应该如何格式化它。

最佳答案

如下所示更改您的脚本。

DECLARE @file_stream VARBINARY(MAX)
DECLARE @command nvarchar(1000)
DECLARE @filePath NVARCHAR(128)
set @filePath = 'C:\Temp\print4.pdf'

set @command = N'SELECT @file_stream1 = CAST(bulkcolumn AS varbinary(MAX))
from OPENROWSET(BULK ''' + @filePath + ''',
SINGLE_BLOB) ROW_SET'

EXEC sp_executesql @command, N'@file_stream1 VARBINARY(MAX) OUTPUT',@file_stream1 =@file_stream OUTPUT

select @file_stream

示例输出: enter image description here

关于sql - 如何在 Openrowset 命令中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39827982/

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