Sql 在informatica powercenter中将变量用作表达式(条件)

Sql 在informatica powercenter中将变量用作表达式(条件),sql,informatica,informatica-powercenter,Sql,Informatica,Informatica Powercenter,我犯了一个错误 上面的表达式是否正确。我们是否可以实现这一点?您的查询中有两个问题 首先,您编写的v_语句变量不会被验证。如果你 确实要以这种格式编写字符串,然后使用管道作为附加 “ACC=”| | 1052502 | | |“,”| | 0.035 | | |“IC=”| | |“IC130”| |“,”| |“0.0675” 请注意,不能循环引用 其次,decode语句无法工作的原因是数据类型不匹配。True是一个布尔值,v_语句是一个字符串。任何变量扩展都会在运行时发生,但在此之前不会发生

我犯了一个错误
上面的表达式是否正确。我们是否可以实现这一点?您的查询中有两个问题

首先,您编写的v_语句变量不会被验证。如果你 确实要以这种格式编写字符串,然后使用管道作为附加

“ACC=”| | 1052502 | | |“,”| | 0.035 | | |“IC=”| | |“IC130”| |“,”| |“0.0675”

请注意,不能循环引用

其次,decode语句无法工作的原因是数据类型不匹配。True是一个布尔值,v_语句是一个字符串。任何变量扩展都会在运行时发生,但在此之前不会发生。因此,informatica不允许使用这种解码语句,除非您将某种字符串输入/变量与另一个字符串或任何其他数据类型进行比较

另外,决定你的情况 当需要评估ACC else IC时(这似乎是您的情况)

v_decode_out=解码(ACC,'1052502',0.035,解码(IC,'IC130',0.0675))

当它同时是ACC和IC时 v_decode_out=解码(正确,ACC='1052502'和/或IC='IC130',0.035,0.0675)

这些是基本概念。在你在这里发布问题之前,最好先尝试一下互联网上的所有可用信息,因为如果有人觉得你自己根本没有努力找到答案,他们会很容易降低你的评分


干杯

将不会验证您编写的v_语句变量。如果你真的想用这种格式写一个字符串,那么就用管道来追加。

最好描述一下你遇到的错误,以及你尝试了什么。
IC=IC
ACC=ACC
v_statement='ACC = '1052502',0.035,IC = 'IC130',0.0675'
v_decode_out=DECODE(TRUE,v_statement,0)