在USQL中,即使我使用可空类型,我仍然会收到NULL的转换错误,例如int?,datetime?等等

时间:2018-05-31 14:41:48

标签: nullable u-sql

当我将类型更改为字符串时,我很好。但是,当我使用int ?, datetime?等等,有时它会接受NULL,有时它会因错误而失败。

"转换输入字符串时出现问题'" NULL"'正确的类型。"

1 个答案:

答案 0 :(得分:2)

如果您传递以下文件内容:

31|NULL|1

到以下EXTRACT表达式:

@data = 
  EXTRACT a int?, b int?, c int? 
  FROM @file 
  USING Extractors.Text(delimiter:'|');

您将收到您观察到的错误消息,因为NULL被视为字符串。使用内置Extractors / outputters序列化和解析空值的默认方式是没有值,例如31||1。虽然内置提取器为您提供了nullEscape参数。所以试试:

… USING Extractors.Text(delimiter:'|', nullEscape:"NULL");