如何在 OPENROWSET 命令中将路径传递给 Bulk
How to pass path to Bulk in OPENROWSET command
我有一个 XML 文件。我想 运行 一个查询就可以了。我正在使用 OPENROWSET(BULK ... , SINGLE_BLOB)
如下代码。
DECLARE @XML XML
SELECT
@XML = CAST( c1 AS XML)
FROM OPENROWSET(BULK '\ServerA\Test\AA.xml', SINGLE_BLOB) AS T1(c1);
SELECT @XML
但是我应该为路径使用变量,如下面的代码:
DECLARE @XML_File_Path NVARCHAR(1000)
SET @XML_File_Path = '\ServerA\Test\AA.xml'
DECLARE @XML XML
SELECT
@XML = CAST( c1 AS XML)
FROM OPENROWSET(BULK @XML_File_Path, SINGLE_BLOB) AS T1(c1);
SELECT @XML
而且这不起作用。我怎样才能在 BULK 关键字后面有一个变量?
使用动态sql:
DECLARE @XMLFilePath NVARCHAR(1000)
DECLARE @SQL NVARCHAR(MAX)
SET @XMLFilePath = '\ServerA\Test\AA.xml'
SET @SQL = N'
DECLARE @XML XML
SELECT @XML = CAST( c1 AS XML) FROM OPENROWSET(BULK ''' + @XMLFilePath + ''', SINGLE_BLOB) AS T1(c1);
SELECT @XML'
EXEC(@SQL)
我有一个 XML 文件。我想 运行 一个查询就可以了。我正在使用 OPENROWSET(BULK ... , SINGLE_BLOB)
如下代码。
DECLARE @XML XML
SELECT
@XML = CAST( c1 AS XML)
FROM OPENROWSET(BULK '\ServerA\Test\AA.xml', SINGLE_BLOB) AS T1(c1);
SELECT @XML
但是我应该为路径使用变量,如下面的代码:
DECLARE @XML_File_Path NVARCHAR(1000)
SET @XML_File_Path = '\ServerA\Test\AA.xml'
DECLARE @XML XML
SELECT
@XML = CAST( c1 AS XML)
FROM OPENROWSET(BULK @XML_File_Path, SINGLE_BLOB) AS T1(c1);
SELECT @XML
而且这不起作用。我怎样才能在 BULK 关键字后面有一个变量?
使用动态sql:
DECLARE @XMLFilePath NVARCHAR(1000)
DECLARE @SQL NVARCHAR(MAX)
SET @XMLFilePath = '\ServerA\Test\AA.xml'
SET @SQL = N'
DECLARE @XML XML
SELECT @XML = CAST( c1 AS XML) FROM OPENROWSET(BULK ''' + @XMLFilePath + ''', SINGLE_BLOB) AS T1(c1);
SELECT @XML'
EXEC(@SQL)