找到匹配条件时,我正在使用连接的查询来获取值。但是,当数据库中存在非NULL值时,查找将返回NULL值。
我已在Informatica Debugger和数据库中验证所有条件都匹配,并且存在相应的值。
以下是屏幕截图:-
调试器:-(我在查找端口上注意到一个红色的感叹号,我不确定它表示什么)
Onerosity标签是查找值。端口2到7中使用的查找条件
Informatica详细模式日志:-
查询表数据:- Lookup_Table
在SQL中使用联接时的结果:- SQL Join Result
似乎我需要进行一些细微的更改,但我无法弄清楚它会是什么。
答案 0 :(得分:0)
检查查找中onerosity端口的查找替代查询/数据类型。
答案 1 :(得分:0)
此问题已解决,并且是否是因为LKP值之一是LKP表中的CHAR属性而不是VARCHAR。
我得到社区成员的以下评论,以解决此问题。
” 差异虽然微妙,但却意味着:
始终将CHAR值填充到其定义的最大长度,并带有空格。
现在,当您运行SQL查询时(如您的示例),则SQL Server(以您的情况为例)的SQL解释器将自动“填充”太短到正确定义长度的值,这意味着SQL查询手动运行将返回您要查找的内容。
但是,LKP转换运行SELECT查询以从数据库中获取所有查找记录。并且在这种情况下,所有CHAR属性都被填充为其定义的最大长度。
如果您现在要投放例如LKP转换中的查找值'123',并且基础查找表对此属性具有CHAR(5),则LKP高速缓存将在其索引高速缓存中包含字符串'123'。但是您要查询的值是“ 123”。显然'123'和'123'不匹配,这意味着您没有结果。 “
答案 2 :(得分:0)
解决此问题的两种方法: