SSIS: столбец «имя_столбца» не найден в источнике данных - PullRequest
1 голос
/ 30 июня 2019

Я работаю над проектом SSIS. Я пытаюсь выполнить запрос в файл. В моем пакете у меня есть источник OLE DB, который выполняет этот запрос.

USE [DB]

SET FMTONLY OFF;

DECLARE @table_data TABLE 
                    (
                        column_01 VARCHAR(255),
                        column_02 VARCHAR(10),
                        column_04 VARCHAR(255)
                    )

SELECT 
    'column_01',
    'column_02',
    'column_03'
UNION ALL 
        column_01,
        column_02,
        column_03
FROM 
    @table_data

Когда я пытаюсь запустить скрипт, я получаю эту ошибку:

SSIS: столбец 'column_01' не найден в источнике данных

Я попытался включить ValidateExternalMetaData, и я получил ошибку (failed validation and returned validation status "VS_NEEDSNEWMETADATA").

Источник OLE DB выводит данные в динамический текстовый файл.

Я не знаю, как это исправить, или не понимаю, почему SSIS не позволяет мне использовать это.

Ответы [ 3 ]

1 голос
/ 30 июня 2019

Я пытался как ниже. Работает без ошибок.

USE [DB]

SET FMTONLY OFF;

DECLARE @table_data TABLE 
                    (
                        column_01 VARCHAR(255),
                        column_02 VARCHAR(10),
                        column_04 VARCHAR(255)
                    )

INSERT INTO @table_data
SELECT 'column_01','column_02','column_03'

SELECT * FROM @table_data

enter image description hereenter image description here

1 голос
/ 30 июня 2019

после объединения вы должны использовать select как это:

USE [DB]

SET FMTONLY OFF;

DECLARE @table_data TABLE 
                    (
                        column_01 VARCHAR(255),
                        column_02 VARCHAR(10),
                        column_04 VARCHAR(255)
                    )

SELECT 
    'column_01',
    'column_02',
    'column_03'

UNION ALL 

select
        column_01,
        column_02,
        column_03
FROM 
    @table_data
1 голос
/ 30 июня 2019

Ваш код не генерирует ошибку;см. здесь .

Я подозреваю, однако, что вы ожидаете, что ваши результаты будут иметь столбцы с именами .Но они просто анонимные строки.Что вы хотите, довольно непонятно.Возможно:

SELECT 'column_01' as column_01, 'column_02' as column_02,
       'column_03' as column_03
FROM @table_data;

Или, возможно, вам нужны значения из таблицы, а не постоянные строковые значения:

SELECT column_01, column_02,column_03
FROM @table_data;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...