【问题标题】:bcp and backspace (^H) delimiterbcp 和退格 (^H) 分隔符
【发布时间】:2010-12-30 14:07:59
【问题描述】:

我需要解析一个在字段之间包含退格 (^H) 字符分隔符的平面文件。我需要解析这个文件并插入到 sql server 2005 表中。我尝试将 bcp 实用程序与格式文件一起使用,但我无法将分隔符指定为退格。 默认是制表符 (\t)。还有其他几个分隔符,但没有指定退格符。任何人有任何想法,请帮助我。

我还需要将 sql server 表中的数据导出到固定长度的平面文件。我尝试使用非 xml 格式的文件,但它总是要求一个分隔符。如何使用 bcp 创建一个平面文件,之间没有任何分隔符田野? 以上都是字符文件。

【问题讨论】:

  • 为什么使用退格作为字段分隔符?
  • 关键在于,输入我们系统的文件实际上来自一个遗留应用程序,该应用程序发送具有退格作为字段分隔符的平面文件。我们需要解析这些文件并将数据存储在我们的 sql 服务器中表。
  • 好的,我解决了关于使用 bcp 导出实用程序导出固定长度平面文件的第一部分。但我仍在等待有关如何使用 bcp 导入工具解析退格分隔文件的想法。我只能使用非xml格式的文件..欢迎任何想法。

标签: bcp delimiter backspace


【解决方案1】:

这是一个丑陋的解决方法,但您总是可以找到一些不在平面文件中的内容,并用它替换平面文件中的所有内容,然后将其用作列终止符(使用 bcp -t that)。

【讨论】:

  • 这需要一个额外的预处理步骤。有更好的吗?
  • 我希望。我正在等待我发布的一个类似问题的答案,但我没有意识到它可能与您的问题本质上大致相同。
  • 你能把那个问题的链接发给我吗?我想知道我们是否可以以某种方式将 ascii 字符指定为 bcp -t 选项中的分隔符。但找不到任何方法来做到这一点。
  • 当然,抱歉:stackoverflow.com/questions/1976086/…。不过,您应该在msdn.microsoft.com/en-us/library/aa196735%28SQL.80%29.aspx 的第一个表下看到注释
  • 我仍在尝试从 bcp 解析退格分隔的文件。我正在寻找答案..欢迎任何想法..
【解决方案2】:

抱歉,我迟到了将近 11 年,希望您已经解决了您的问题,但是您可以使用退格字符 0x08 的十六进制表示来解析您的输入文件并正确分隔您的字段,这些字段用退格字符。

【讨论】:

    猜你喜欢
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 2013-12-27
    相关资源
    最近更新 更多