【问题标题】:dat file importing to sql serverdat 文件导入到 sql server
【发布时间】:2019-04-30 15:35:05
【问题描述】:

我的文件有'|'作为文本限定符和 col 分隔符作为 ',' 但它们没有行分隔符。如何处理它。

数据示例

|1|,|4616002.000000|,|firstname1|,|lastname1|,||,|19341009000000|,|Female|,|HP|,|20090123160644|,|733.01|,|Osteoporosis, Postmenopausal.|,|ICD-9-CM|,||,||,||,||,|Confirmed|,|Active|,|20090123160632|,||,||,||,||,||,||,||,||,|Medical|,||

|2|,|4616002.000000|,|firstname2|,|lastname2|,||,|19341009000000|,|Female|,|HP|,|20090123160652|,|530.81|,|GERD [Gastroesophageal reflux disease]|,|ICD-9-CM|,||,||,||,||,|Confirmed|,|Active|,|20090123160644|,||,||,||,||,||,||,||,||,|Medical|,||

【问题讨论】:

  • 您确定行分隔符不是回车换行符{CR}{LF}?当显示隐藏字符时,在 Notepad++ 中复制/粘贴示例数据会显示两个 {CR}{LF},尽管我猜您在问题中添加了第二个用于格式化。
  • 在notepad++中打开它后它工作了,但后来它在加载时抛出0xc0047038错误。任何帮助将不胜感激。 @userfl89
  • 我在下面发布了一个答案,更详细地解释了这个过程。希望这会有所帮助。

标签: ssis delimiter sql-import-wizard


【解决方案1】:

下面将进一步概述此过程。如上所述,请务必确认选择了适当的数据类型并且源数​​据符合它们。在不知道您尝试将记录导入为什么数据类型的情况下,我无法明确地说,但您收到的错误可能与数据转换有关,我建议检查任何其他错误消息并验证正确的数据类型每列都使用长度。

  • 在控制流上添加一个数据流任务并在其中创建一个平面文件源组件。打开平面文件源并按下新建按钮以使用示例数据文件定义平面文件连接管理器。在 General 页面(第一个屏幕截图)上,选择 Delimited format 和 | 作为 Text Qualifier。除非有标题,否则取消选中 Column Names in the First Data Row 复选框。
  • 在“列”选项卡(第二个屏幕截图)上,选择回车换行符 ({CR}{LF}) 作为行分隔符。换行是指移动到下一个垂直行,回车将光标置于水平行的开头,例如在 Windows 上按下 Enter 键时。同时选择逗号 (,) 作为列分隔符。
  • “高级”窗格中的下一步为每列指定适当的名称、数据类型和长度。有关将 SQL Server(和其他 RDBMS)数据类型与 SSIS 使用的数据类型匹配的具体详细信息,请参阅documentation 中的映射表。
  • 您还需要确认将列发送到适当数据类型的列,这可以在数据流任务的目标组件编辑器中完成。

一般页面:

列页面:

【讨论】:

  • 感谢它在记事本 ++ 中打开后确实有效。但是,当我在记事本中默认使用它时,记录文本不会结束该行,而是下一个记录数据继续。像包装一样的东西。请建议并感谢您的及时答复。我很感激。像这样的东西
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-06
  • 1970-01-01
  • 2015-11-27
  • 2012-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多