【问题标题】:MSSQL BCP not recognizing linefeed character (0x0A)MSSQL BCP 无法识别换行符 (0x0A)
【发布时间】:2014-12-08 07:15:45
【问题描述】:

我在 MSSQL 中使用 BCP 将平面文件数据导入表中。文件具有换行符 (0A) 作为行分隔符。
我正在使用以下 bcp 查询导入文件

bcp dbo.BCPTest 在 O:\BCPTest\test.txt -c -t| -r 0x0A -T -h TABLOCK

BCP 无法正确识别换行符并错误地导入文件。我是否正确给出了记录分隔符。请帮我解决这个问题。

【问题讨论】:

  • 如果您尝试使用默认值 (\n) 会发生什么?您确定您的换行符实际上是换行符吗?尝试创建一个较小的测试文件并使用它。您是否也尝试过使用格式文件?
  • @Allan S. Hansan 如果我使用默认 \n,BCP 查询只会从 1000 条记录中获取 184 条记录。
  • 在 Notepad++ 等编辑器中打开文件并显示所有字符并检查行尾的字符是否确实是 LF 字符
  • @Jaques:如果我们在十六进制模式下看到记录分隔符仅是换行符,即 0A,我已经检查过文件
  • 尝试删除 -r 和 0x0A 之间的空格

标签: sql-server


【解决方案1】:

您的 BCP 命令似乎是错误的。试试这个:

bcp dbo.BCPTest in O:\BCPTest\test.txt -c -t "|" -r 0x0A -T -h TABLOCK

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-12
    • 2019-02-24
    • 2012-02-28
    • 2012-01-27
    相关资源
    最近更新 更多