2016-04-06 2 views
0

Когда я устанавливаю TargetServerVersion = SqlServer2012 в моем проекте SSIS, мой компонент скрипта выдает исключение из нулевого объекта.SSIS TargetServerVersion вызывает пустые строки в компоненте скрипта

Я импортирую около 140 000 записей из файла CSV. Чтобы подтвердить, что у меня есть записи, я удалил свой компонент компонента скрипта и запускал поток без проблем.

enter image description here

Затем я добавил обратно в компоненте сценария (который работал хорошо с этим самим файлом данных), и я получаю нулевое исключение.

Когда я отлаживать скрипт и проверить значение свойства Row он говорит следующее: то

?Row 
{Input0Buffer} 
    Buffer: {Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer} 
    BufferColumnIndexes: {int[2]} 
    MembershipPlanName: 'Row.MembershipPlanName' threw an exception of type 'System.NullReferenceException' 
    MembershipPlanName_IsNull: 'Row.MembershipPlanName_IsNull' threw an exception of type 'System.NullReferenceException' 

Сценарий терпит неудачу, когда остальные строки пытаются ссылаться на строку. Когда я меняю TargetServerVersion на 2016 или 2014 год, пакет работает нормально.

Во время debegging я также посмотрел на BufferWrapper.cs и там, кажется, некоторые данные там

?Buffer 
{Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer} 
    ColumnCount: 2 
    ColumnInfo: 0x0000000000000000 
    CurrentRow: 0 
    EndOfRowset: false 
    Mode: Input 
    RowCount: 9936 
    RowSize: 260145280 
    RowStarts: 0x000000000f82b700 

ответ

1

Из расстройства я установил SSDT для VS2012. По какой-то причине все это отлично работает в VS2015. Не знаете, почему это сработало, но опубликуйте это, если у кого-то есть аналогичная проблема.

Смежные вопросы