SSIS:在数据源上找不到列“ column_name”

时间:2019-06-30 01:54:50

标签: sql sql-server ssis

我正在研究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 个答案:

答案 0 :(得分:1)

您的代码不会产生错误;参见here

不过,我怀疑您期望结果包含具有 names 名称的列。但是它们只是匿名字符串。您想要什么还不清楚。也许:

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;

答案 1 :(得分:1)

我试图像波纹管一样。它正在正常工作,没有任何错误。

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 here enter image description here

答案 2 :(得分:1)

合并后,您必须使用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