外部列“y.col1"(598) 需要从外部列中删除 [英] The external column "y.col1" (598) needs to be removed from the external columns

查看:18
本文介绍了外部列“y.col1"(598) 需要从外部列中删除的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在来自变量的 sql 命令中使用以下查询来从两个不同的表中获取数据.

I am using below query in sql command from variable to fetch data from two different tables.

SELECT x.*, y.col1, y.col2
FROM table1 AS x 
INNER JOIN table2 AS y ON y.AccID = x.accID

根据我的业务逻辑,我需要将查询用作变量中的 sql 命令.在将 DelayValidation 设置为 True 后运行包时,出现以下错误:

As per my business logic I need to use the query as sql command from variable. When I run the package after setting DelayValidation to True, I get the below errors:

"[OLE source **table1**]] Warning: The external columns for component 
"OLE source" (1) are out of synchronization with the data source columns.
The external column "**col2**" (601) needs to be removed from the external columns.
The external column "**Col1**" (598) needs to be removed from the external columns."..

[SSIS.Pipeline] Error: "component "OLE source **table1** " (1)" failed validation
and returned validation status "VS_NEEDSNEWMETADATA".

推荐答案

SQL 中的更改影响了 OLE 源组件的设置.您需要重新访问 SQL 输出的列分配.此外,您还必须检查目标 SSIS 组件,以查看是否有任何更改也会影响它.每次更改 SQL 时,养成仔细检查 sql-column-to-component-column 分配的习惯.

The change in your SQL affected the settings of your OLE Source component. You need to revisit the column assignments for your SQL's output. Also, you will have to check on your destination SSIS component to see if there are any changes that will impact it too. Each and every time you change your SQL, make it a habit to double check the sql-column-to-component-column assignments.

警告:组件的外部列OLE 源"(1) 与数据源列不同步. 表示已检测到组件中的更改.将 DelayValidation 设为 TRUE 仅意味着在设计时不会进行任何组件验证.

Warning: The external columns for component "OLE source" (1) are out of synchronization with the data source columns. means that a change in your component had been detected. Turning DelayValidation to TRUE simply means that no component validations will take place in design time.

需要从外部列中删除外部列**col2**"(601).外部列**Col1**"(598)需要从外部列中删除... 将帮助您指出您的作业可能出错的方向.似乎它可能可能在执行包之前的某个时间减少了列或添加了它们.这是组件验证的严格性所在——也有可能您只更改了 SQL 命令的大小写(在这种情况下,可能是列名),仅此一项就可以触发 "VS_NEEDSNEWMETADATA".

The external column "**col2**" (601) needs to be removed from the external columns. The external column "**Col1**" (598) needs to be removed from the external columns.".. will help point you in the direction of where your assignments may have gone wrong. It seems that it might be possible that you reduced your columns or added them sometime before the package was executed. This is where strictness of the component validations come into place -- there's also a chance that you only changed the case of your SQL command (in this case maybe the column name) and that alone can trigger "VS_NEEDSNEWMETADATA".

再次检查您的组件的列分配,如果您更改源组件的列设置中的任何部分,它也会影响目标(如果有的话,还会影响其间的其他数据转换).

Again, recheck your component's column assignments, and if you change any part in your source component's column settings, it will impact the destination (and if any, other data transformations in between) as well.

这篇关于外部列“y.col1"(598) 需要从外部列中删除的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆