0

我正在尝试运行以下命令来生成文件并使用varchar(MAX)大量数据填充文件。这是问题所在,当我尝试运行代码时,它会创建文件但它们是空的。我知道@classString变量中有数据。是否有一个字符串包围序列我可以环绕@classString它来分隔它?我正在尝试生成一个脚本,所以我假设@classString 包含干扰文件写入的字符。

SET @sqlString = 'echo off > ' + @FilePath + '\' + @table_name + '.cs"'
exec xp_cmdshell @sqlString
SET @sqlString = 'echo ' + @classString + ' >> ' + @FilePath + '\' + @table_name + '.cs"'
exec xp_cmdshell @sqlString
4

1 回答 1

0

没有简单的方法来分隔或引用整个字符串,而是需要使用 ^ 符号转义其中的任何 shell 元字符。例如:

SET @classString = (SELECT REPLACE(@classString, '>', '^>'))
SET @classString = (SELECT REPLACE(@classString, '&', '^&'))

...对于可能在您的字符串中出现的任何 cmdshell 元字符,依此类推。

于 2013-05-08T08:20:34.017 回答