0

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

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

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

有哪些方法可以解决此类问题?

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

4

1 回答 1

0

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

于 2012-12-11T04:02:31.373 回答