2016-08-11 177 views
0

背景:我真的很新。 Informatica的开发人员的PowerCenter快递版本:9.6.1的HotFix 2informatica在sql转换中执行sql

我想执行一个T-SQL语句中的一个步骤一个工作流程:

truncate table dbo.stage_customer 

我试图创建一个映射,添加一个SQL转换在上面。在sql查询窗口中输入上面的查询。我将映射添加到刚开始,映射和结束的工作流程中。当我验证流程,我得到这个错误:

The group [Input] in transformation xxx must have at least one port 

我不知道,因为这需要哪些端口(TRUNCATE语句)基本上不需要输入或输出。

+0

简而言之:你做错了。 Informatica不是“运行sql语句的工具”。这是一个ETL工具,可用于创建数据流。为此,它需要源和端口和链接。它也可以执行一些额外的陈述 - 但这并不意味着你可以抛弃所有其他的东西。 – Maciejg

+0

不,我没有使用它只是运行一个sql语句,它是工作流程中的一个步骤,我将需要截断一个表,填充该表等。 – thotwielder

+0

在这种情况下,只需使用会话目标属性或组合的前/后SQL语句,以最适合您的为准。 – Maciejg

回答

0

如果您想在加载之前截断目标表,为什么不使用会话属性中的内置选项?

转到工作流程管理器 - >打开会话级>映射选项卡 - >点击左侧列出副作用目标表>选择属性“截断表选项”刚刚启用

回答你的问题,我觉得你有将至少一个输入和输出端口连接到SQL转换(因为它不是未连接)。只需创建虚拟端口,然后再试一次

尝试本文 - click here

1

使用您的查询“截断表dbo.stage_customer”预SQL命令

+0

我找不到pre-sql命令,它在映射还是工作流程中?我试图看着两个,但没有看到任何。我用快递版本btw – thotwielder

+0

ok,发现源对象的属性(Read view)。这可能会起作用。 – thotwielder

1

由于Aswin建议使用内置的选项,在会话属性。

但是在生产环境中,用户可能没有截断数据库中表的表访问权限。在这种情况下,如果检查截断目标表选项,informatica工作流将失败。最好有一个存储过程截断目标表并在informatica映射中使用该存储过程,以避免在用户没有对数据库进行截断访问的情况下发生工作流失败。

+0

谢谢你好。 – thotwielder