2017-04-13 69 views
0

我使用char数据类型在SQ转换中使用一个端口进行映射。现在我希望SQ使用查询(显然会返回一列),我将把它放在unix路径中。每当我在unix中更改查询时,映射将根据查询生成不同的数据集。 有没有什么办法可以做到这一点与SQ或甚至与其他转型? 我不想参数化查询并使用SQ中的参数。这可能会导致查询的大小限制。如何在Informatica中强制SQ使用Unix路径中的文件查询

回答

1

我还是不明白对参数文件的厌恶 - 返回1列的查询有多大?如果您有疑问,请参阅以下非常类似的线程,其中nico提供了字符串参数限制的良好指示,即超过32000个字符。 https://network.informatica.com/thread/20140

您还可以通过使用SELECT $$选择一个来自$$来源$$ WHERE条件

+0

查询返回一列,但它包含表中所有列的连接值。 – fuzzy

+0

从我所坐的位置来看,这对传出列的大小造成了比查询定义更多的问题。您是否尝试过首先查询参数化查询,然后找出问题,或者您是否假设您会看到问题的更深层次的问题?你的表有多少列?是你担心的连接函数膨胀你的查询吗?你意识到你也可以做一些像SELECT $$ Selection1 $$ Selection2 $$ Selection3 FROM $$ Sources WHERE $$ Condition –

0

为此,您可以在脚本模式下使用SQL转换。只需将SQL文件名与SQL转换的路径一起传递即可。

+0

尽我所知,在脚本模式下集成服务会忽略SQL脚本中的select语句的输出。所以我不会将SQL转换输出端口中的输出传播到目标。 – fuzzy

1

创建运行任何给定的查询映射扩大你的配置是一般一个坏主意。 PowerCenter不是SQL语句执行工具。

要做到这一点,您不需要PowerCenter。你甚至会遇到很多问题。创建一些简单的jar或使用任何脚本语言。

PowerCenter是进行数据处理的工具。来源应该反映底层的数据结构。源限定符应处理来自基础表的数据。您无法创建反映任何给定表格结构的文件。

无论如何:另一种解决方案是尝试将您的语句保留在数据库中,并使用参数化的SP来执行所需的语句。

相关问题