【发布时间】:2018-08-29 09:39:57
【问题描述】:
我必须将文档作为一个整体导入到 SQL Server 表中。我有一个包含所有文件名的表。我遍历表并使用以下动态 SQL 加载数据。
SET @sqlUpdate = 'UPDATE [targettable] SET [ScanData]=(SELECT * FROM OPENROWSET(BULK N''' + @sourcePath + @filename + ''', SINGLE_BLOB) f) WHERE [FileName]=''' + @fileName + '''';
EXEC (@sqlUpdate);
这适用于大多数文件。但是当文件的名称中包含特殊字符(如“ä”或“š”)时,我会收到文件未找到错误。
是否有一些设置可以让 OPENROWSET 也导入这些文件?还是有其他方法可以将文件放入表中?
【问题讨论】:
-
您尝试将适当的
CODEPAGE添加到BULK? -
您还需要在
WHERE子句中添加N来表示Unicode 文字:WHERE [FileName]=N''' + @fileName。这假设@sourcePath和@filename参数/变量被声明为nvarchar。
标签: sql-server special-characters filenames openrowset