如何使用映射级参数作为SQL转换的输入?我尝试了两种不适合我的方法:
首先尝试:
我把一个"虚拟表"这是一个关系数据对象,它使用此SQL select 'dummy' as Dummy
返回一行一列。
我将Dummy列连接到SQL转换的输入。
我将SQL转换的SQL查询设置为此?RETURN_VALUE? = call dbo.MySproc ($MyParameter)
当我尝试这个并检查数据查看器时,出现Cannot parse parameter [$MyParameter], because the value is not valid
错误。我尝试了$ MyParameter,$$ MyParameter和MyParameter的变体,所有这些都基于我在文档中看到的内容,但无论如何我都会遇到SQL错误。
以下是这一切:
第二次尝试:
我使用上面步骤#1中相同的虚拟表
我进行了一个表达式转换,它接受了虚拟输入,并且有一个我试图设置为映射级参数的输出。我使用的输出表达式是$MyParam
我将表达式转换的输出连接到SQL转换的输入。
当我尝试这个时,我得到一个涉及Error: <<PM Parse Error>> invalid token ... $<<<<MyParameter
表达式转换的验证错误。我再次尝试了一些我在文档中看到的参数语法变体,但每次都会出现相同的错误。
以下是我的第二次尝试:
以下是我如何声明我的映射级参数:
编辑1:我发现此SO answer提到我应该将映射参数的IsExprVar
字段设置为FALSE
。我必须拥有不同版本的PowerCenter,因为我无法在任何地方看到IsExprVar
字段,而在搜索该字词的帮助文件时,我无法获得任何结果。
编辑2:我包含了我的映射级参数声明
答案 0 :(得分:-2)
以下是您需要做的事情:
1.将映射参数声明为$$ MyParameter(在声明参数时将Is Expression Variable选项保持为false),单个$用于Informatica内置参数。
2.在Expression中创建一个端口MyPort,并在表达式中将其设置为$$ MyParameter。
3.在SQL转换中拖动相同的端口,在SQL查询中将其称为:~MyPort~不是实际参数。