Наиболее эффективным подходом, вероятно, было бы написать собственный экстрактор, который просто пропускал бы строки, содержащие только нулевые значения.
В противном случае вы могли бы написать что-то вроде этого (обратите внимание на нулевые индикаторы для типов, не являющихся объектами):
@data = EXTRACT c1 string, c2 int?, c3 DateTime? // ... more columns
FROM "/path/file.csv"
USING Extractors.Csv();
@data = SELECT * FROM @data WHERE c1 != null AND c2 != null AND c3 != null;
(обратите внимание, что вам, скорее всего, придется привести null
к типу столбца в сравнении).
Если ваша схема отличается для разных файлов, вы также можете выполнить фильтр, используя так называемый процессор, который может просматривать схему входной строки. Что-то вроде
@data = PROCESS @data PRODUCE c1 string, c2 int?, c3 DateTime?
USING new MyAsm.NullFilterProcessor();
Где вам нужно было бы реализовать NullFilterProcessor
как IProcessor
.
person
Michael Rys
schedule
10.10.2016