将PostgreSQL转储导入SQL Server - 数据类型错误

时间:2017-04-05 21:35:12

标签: sql sql-server postgresql ssis

我有一些从PostgreSQL数据库(据称使用pg_dump)转储的数据需要导入SQL Server。
虽然数据类型还可以,但我遇到的问题似乎是占位符为NULL。我在许多字段中看到一个反斜杠后跟一个大写的N.以下是从Excel中查看的数据片段。左列具有布尔数据类型,右列具有整数作为数据类型

Snippet of the data, as viewed from within Excel. Left column has a Boolean data type, and the right one has an integer as the data type

其中一些应该是布尔数据类型,并且其中有两个字符肯定不会飞。

这是我到目前为止所尝试的内容:

  1. 通过脏读取导入 - 保留SSIS决定每个字段的数据类型;无济于事。在所有布尔字段上都有关于截断的错误消息。
  2. 基于正确的数据类型为数据创建表格,虽然这更有趣......我需要像脏读取一样,因为否则将无法正确加载源。还需要将数据转换为正确的数据类型以插入目标数据源;然而,我肯定会遇到截断问题,当时它肯定不应该 这是我的派生列转换编辑器中的示例表达式:
    (DT_BOOL)REPLACE(observation,"\\N","")
    数据类型应为布尔值。
  3. 任何建议都会非常有用!

    谢谢!

1 个答案:

答案 0 :(得分:0)

由于我无法规避SSIS规则以便在没有错误的情况下将数据存入我的表格,因此我采取了快速而肮脏的方法。
对我有用的解决方案是让源数据读取每列,就像它是一个字符串一样,目标表的所有字段都是数据类型VARCHAR。此目标表将用作临时表,一旦在SS中,我可以根据需要进行操作。

感谢@cha的输入。