我需要使用XML
命令读取SQL
文件的内容。我使用xp_cmdshell
来读取文件并将所有内容插入到临时表中。
这是我的存储过程:
ALTER PROCEDURE ReadingXMLTest (@FileName VARCHAR(255))
AS
BEGIN
DECLARE @ExecCmd VARCHAR(255)
SET @FileName = 'C:\PrivateData\EmployeesInfo.xml';
CREATE TABLE #tempXML(PK INT NOT NULL IDENTITY(1,1), ThisLine VARCHAR(255))
SET @ExecCmd= 'type' + @FileName;
INSERT INTO #tempXML EXEC master.dbo.xp_cmdshell @ExecCmd;
END
但是我得到了这个错误 -
文件名,目录名或卷标语法不正确。
我确信指定的文件存在于运行SQL Server的计算机的目录中。文件名,目录名,卷标一切正确。但为什么呢?
请帮帮我。我试了很多次。
答案 0 :(得分:3)
我替换了文件路径并测试了您的查询。它工作得很好。
这是给你问题的一线。
SET @ExecCmd= 'type ' + @FileName;
type
之后需要一个空格。
这是一个完整的dos命令,你必须运行'type C:\ PrivateData \ EmployeesInfo.xml'