我有一个文件名,需要插入SQL Server中的表。我知道,我可以加倍单引号和插入,但这个文件名有点棘手。 任何帮助将受到高度赞赏。
@Filename:
'013095','013096','013213','013214','013815','013871','013872','13873','013874','013875','013876','013879','13877','13878' 2015-01-24.xls'
我知道这是一个由客户提供的非常糟糕的文件名,但我想在我还原它之前尝试一下。
我尝试过以下两件事来实现这个目标:
使用“替换”功能通过转义或加倍来替换单引号。
set @FilenameFinal = Replace(@FileName,char(39), '''')
我的最终目标是正确地识别上述文件名,并从插入的存储过程中调用此函数。
Set @index = 1
Set @FilenameFinal = ''
set @len = LEN(@FileName)
while @index <= @len
begin
set @char = Substring(@FileName,@index,1)
If (@char = char(39))
begin
set @char = Replace(@char, char(39),'''')
--set @filename = Replace(@filename,Char(39),'''')
end
--set @FileName = @char + Substring(`enter code here, @index,1)
set @FilenameFinal = @FileNameFinal + @char
set @index = @index + 1
end
return @FilenameFinal
答案 0 :(得分:0)
我想你想要这一行:
set @char = Replace(@char, '''', '''''')
这会将所有单引号更改为加倍引号(转义)。
您也不需要WHILE循环。只有一行应该正确地逃避。