我通常会通过批量插入从文本文件将数据加载到数据库中。全部为nvarchar。我把它全部设置为存储过程,这意味着非常快速的转换,只需最少的脚本重写。但有时,金额列可能会导致问题。例如,我们收到的一些摘录包含" - "对于0,其他人将显示负数(10.00)。这意味着当我尝试将amount列转换为float时,我会收到错误。
以自动方式捕获和识别这些随机字符的最佳方法是什么?
答案 0 :(得分:2)
好吧,为了识别,我认为你可以使用这样的形式使用正则表达式:
SELECT AmountColumn
FROM yourTable
WHERE PATINDEX('%[^.0-9]%', AmountColumn) > 0
这将在表格中插入所有包含任何其他字符而非数字的金额,包括特殊字符,字母等。
如果您希望在存储过程的运行时期间处理这些值,我认为最好添加SP的代码和更多详细信息。