使用xp_cmdshell读取XML内容时出错

时间:2013-10-21 03:31:45

标签: sql sql-server xml tsql stored-procedures

我需要使用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的计算机的目录中。文件名,目录名,卷标一切正确。但为什么呢?

请帮帮我。我试了很多次。

1 个答案:

答案 0 :(得分:3)

我替换了文件路径并测试了您的查询。它工作得很好。

这是给你问题的一线。

SET @ExecCmd= 'type ' + @FileName;

type之后需要一个空格。

这是一个完整的dos命令,你必须运行'type C:\ PrivateData \ EmployeesInfo.xml'