Предупреждение: усечение может произойти из-за извлечения данных из столбца базы данных - PullRequest
2 голосов
/ 03 апреля 2019

Я импортирую набор данных из Oracle, используя SSIS. SSIS дает мне предупреждение:

Усечение может произойти из-за извлечения данных из столбца базы данных «Третья сторона» длиной 28 в столбец потока данных «Третья сторона» длиной 25. "

Предупреждение не имеет смысла. Назначением является база данных SQL Server, где атрибутом является [Third Party] как nvarchar(255).

Почему инструмент выдаёт мне эту странную ошибку?

Я попытался изменить длину nvarchar(max). Это не имело значения.

select 
    case 
        when XTNL_HOS_FLG = 1 and VND_MG_APL_FLG = 0 
           then 'Host'          
        when XTNL_HOS_FLG = 0 and VND_MG_APL_FLG = 1 
           then 'Support or Manage' 
        when XTNL_HOS_FLG = 1 and VND_MG_APL_FLG = 1 
           then 'Host and (Support or Manage)'  
        else ''
    end  as "Third Party"
from 
    table1

Ответы [ 2 ]

3 голосов
/ 03 апреля 2019

Вы должны взглянуть в «Показать расширенный редактор» своей задачи потока данных, щелкнув правой кнопкой мыши по Source Target.Затем перейдите на вкладку «Свойства ввода и вывода» и проверьте длину столбца.Сделайте то же самое с целевым адресатом.

Зависит от того, как вы получили данные, тип и длина столбцов не совпадают с базой данных.

Надеюсь, это поможет вам.

Мариана

0 голосов
/ 03 апреля 2019

Поскольку вы используете команду SQL в качестве источника, вы можете отредактировать команду и указать длину столбца источника, чтобы помочь источнику OLEDB ее распознать.Вы можете использовать функцию CAST, чтобы сделать это:

select CAST(
    case 
        when XTNL_HOS_FLG = 1 and VND_MG_APL_FLG = 0 
           then 'Host'          
        when XTNL_HOS_FLG = 0 and VND_MG_APL_FLG = 1 
           then 'Support or Manage' 
        when XTNL_HOS_FLG = 1 and VND_MG_APL_FLG = 1 
           then 'Host and (Support or Manage)'  
        else ''
    end AS NCHAR(255)) as "Third Party"
from 
    table1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...