Если передать следующее содержимое файла:
31|NULL|1
следующему выражению EXTRACT
:
@data =
EXTRACT a int?, b int?, c int?
FROM @file
USING Extractors.Text(delimiter:'|');
, вы получите сообщение об ошибке, которое вы наблюдаете, поскольку NULL обрабатывается какстрока.Способ по умолчанию для сериализации и анализа нулевых значений с помощью встроенных экстракторов / выходов заключается в отсутствии значения, например, 31||1
.Хотя встроенные экстракторы предоставляют вам параметр nullEscape
.Так что попробуйте:
… USING Extractors.Text(delimiter:'|', nullEscape:"NULL");