2016-11-29 13 views
1

Я пишу набор данных в таблицу SQL Server 2008 в SSIS (Visual Studio 2008). Когда я сопоставляю свой набор данных с адресом OLE DB, я получаю ошибку усечения, потому что столбцы назначения OLE DB имеют длину 20. Это происходит для каждого столбца, но я буду показывать только образец из одного столбца ниже.Неверная длина внешнего столбца в SSIS OLE DB Назначение

Это столбец, как в определении SQL таблицы:

Column_name  Type  Length 
FLAGVOEMPLOYEE nvarchar 40 

Это метаданные (проверяется в редакторе каналов передачи данных) колонки я передаю к месту назначения в качестве входных данных:

Name   Data Type Length 
FlagVoEmployee DT_WSTR  40 

Это является свойства столбцов в Advanced Editor> Входные и выходные свойства> OLE DB Destination Input> Внешние колонны:

Name   DataType     Length 
FLAGVOEMPLOYEE Unicode string [DT_WSTR] 20 

Я пробовал:

  • вручную изменив атрибут длины, но она будет восстановить автоматически обратно 20
  • Удаление пути и создает его снова
  • Удаление назначения OLE DB и снова создает его
  • Изменение режима доступа к данным для нормальной или быстрой загрузки
  • Unmapping колонку и переотражениях

Я теряюсь, как я не знаю, как изменить любое другое имущество, которое могло бы помочь мне избежать усечения

ответ

1

ли вы создать часть SSIS первого, а затем изменить размер столбца в таблице SQL после ? Если это так, вы можете просто удалить и воссоздать источник OLE DB для сброса метаданных.

Я также нашел эту ссылку: http://www.sqlservercentral.com/Forums/Topic927634-364-1.aspx

При работе с SSIS и источника или назначения метаданных изменения SSIS не сбрасывает метаданные, он удаляет измененный столбец и добавляет новый в конце списка. Это приводит к беспорядочным пакетам после нескольких изменений.

Чтобы сбросить метаданные в источниках данных, измените источник на таблицу или запрос, у которых нет соответствующих имен столбцов, а затем просмотрите столбцы в источнике данных. Это приведет к удалению и восстановлению метаданных. Затем верните исходный код обратно на измененный источник, который вы пытаетесь обновить метаданные и снова просмотрите столбцы. Это полностью воссоздает метаданные для источника.

Для пунктов назначения измените пункт назначения на один без соответствующих имен столбцов, а затем просмотрите сопоставленные столбцы. Это приведет к удалению и восстановлению метаданных. Затем вернитесь к новому или измененному месту назначения и просмотрите сопоставленные столбцы. Это эффективно сбрасывает метаданные.

+0

Привет, спасибо за ответ, но нет, я не изменил таблицу SQL после. Хотя метаданные потока входных данных кажутся правильными. –

+0

Вы удалили и воссоздали источник, и это не повлияло? Используете ли вы оператор SQL в источнике или только таблицу, выбранную из раскрывающегося списка? –

+0

Я использую как таблицу, так и оператор SQL, поскольку я позже присоединяюсь к ним. Я не пытался их воссоздать. Вы предлагаете сделать это, даже если данные, которые я получаю в OLE DB Destination, верны? –

0

Чтобы заставить его предоставить столбец 40 символов, использовать производный преобразование столбца и изменить выражение этого:

(DT_WSTR, 40) [FLAGVOEMPLOYEE]

Я надеюсь, что это помогает, и если он сделал, пожалуйста, отметьте мой ответ, чтобы он мог принести пользу и другим!

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

  • Нет связанных вопросов^_^