0

我需要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 的机器的目录中。文件名、目录名、卷标都正确。但为什么?

请帮我。我试了很多次。

4

1 回答 1

3

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

这是给你问题的线。

SET @ExecCmd= 'type ' + @FileName;

后面需要一个空格type

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

于 2013-10-21T03:53:14.310 回答