【问题标题】:Convert to NULL in case varchar in ssis如果 ssis 中的 varchar,则转换为 NULL
【发布时间】:2017-03-23 17:44:28
【问题描述】:

从源 csv 文件中,我有 DailyTurnover 列,即 Int 尽管有对应于 NULL\N 值。

问题是 - 如何使用具有 int 数据类型的 SSIS 任务将这个 \N 值转换为 NULL 到目标列?

【问题讨论】:

  • 谢谢。你能告诉我与此相关的示例 ssis 表达式吗?仍在熟悉自己的表达方式。

标签: sql-server csv ssis


【解决方案1】:

我将通过添加一个派生列来检查\N 并将其替换为NULL int 来处理这个问题。

在您的源项目之后,添加一个派生列组件。将“派生列”选项更改为Replace 'DailyTurnover',并输入此表达式(未经测试):

[DailyTurnover] == "\\N" ? NULL(DT_WSTR) : [DailyTurnover]

然后将派生列映射到目标。

编辑:根据 OP 收到的错误消息,将上述表达式中的 DT_I4 替换为 DT_WSTR

【讨论】:

  • 谢谢。虽然我收到此错误消息“DFD 报告错误 [派生列 [128]]:数据类型“DT_I4”和“DT_WSTR”与二元运算符“==”不兼容。操作数类型无法隐式转换为操作的兼容类型。要执行此操作,需要使用强制转换运算符显式强制转换一个或两个操作数
  • 那是因为看起来像 int 的东西实际上是数据源中的 string。代替NULL(DT_I4),使用NULL(DT_WSTR)。我会更新我的答案。
猜你喜欢
  • 2020-03-11
  • 2021-03-13
  • 1970-01-01
  • 2012-10-14
  • 1970-01-01
  • 1970-01-01
  • 2017-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多