处理大容量插入的字段值中的字段终止符



这是我们将日志插入数据库的代码:

SET @SQL = 'BULK INSERT #tbl_Temp FROM '
        + ''''
        + @PathFileName
        + ''''
        + ' WITH (FIELDTERMINATOR ='
        + ' ''|''' 
        + ','
        + ' ROWTERMINATOR = '
        + ' ''|n''' 
        + ','
        + ' CHECK_CONSTRAINTS, KEEPIDENTITY, MAXERRORS = 30)'

基本上,我们批量插入的日志文件是管道字符分隔的,上面的代码工作正常,但是如果一个字段的值中包含管道|,例如加密字段,则此SQL代码无法处理它。

解决

此类问题的方法有哪些?

如果 BULK INSERT 不起作用,那么在不修改日志格式的情况下应该是什么解决方案,因为它已经在生产中。

我们所做的是指定一个多字符分隔符,例如'!@#$%^&*()',它工作正常。但这当然是如果您在生成日志文件的软件上有控制权

最新更新