Pentaho 如何解决Ketter中的in/out mysql参数错误?
我正在使用Ketter进行转换,并尝试在mysql中获取基于整数的'out'参数的值(该字段实际上应该是Pentaho 如何解决Ketter中的in/out mysql参数错误?,pentaho,kettle,Pentaho,Kettle,我正在使用Ketter进行转换,并尝试在mysql中获取基于整数的'out'参数的值(该字段实际上应该是bigint,但我认为Ketter不支持它) 我已经用decimal实现了解决这个问题的方法,但我花了很长时间试图首先将值返回到id字段(而不是id_1),然后将其转换回整数,以便插入数据库 以下是相关流程: 这是步骤定义: 在从查找现有id出来的入站流上,已经添加了一个名为id的字段,该字段是一个十进制数,可以是值,也可以是空值。如果为null,则在筛选行步骤触发此db过程查找,因此换
bigint
,但我认为Ketter不支持它)
我已经用decimal实现了解决这个问题的方法,但我花了很长时间试图首先将值返回到id字段(而不是id_1
),然后将其转换回整数,以便插入数据库
以下是相关流程:
这是步骤定义:
在从查找现有id
出来的入站流上,已经添加了一个名为id
的字段,该字段是一个十进制数,可以是值,也可以是空值。如果为null,则在筛选行
步骤触发此db过程查找,因此换句话说,在db过程
步骤,它将始终为null(因此我不能在此处使用in-out参数)
因此,我想要发生的是,当它离开db过程
步骤时,id
应该填充out参数的值(理想情况下它应该是一个整数,但由于这个bug,我可以使用decimal)。但是我将id\u 1
插入到流中
然后再往下一行,假设id字段中的值是十进制的,那么我需要将其转换回整数,这样就可以将其插入数据库而不会出错。我真的不知道如何在Ketter中编写javascript,也找不到关于该语言的文档
所以我的问题有两个:
id
插入到流中吗id
(或id\u 1
)转换为整数并将其放回流中的id
字段Kettle基于Java构建并使用JDBC驱动程序。让我总结一些来源并调查这个问题(我将包括Postgresql,因为我使用它最多,而且这些信息对我来说很有价值)
"id" "surname" "name" "birth_dt"
"1" "Gorovits" "Alex" "2001-01-01"
"2" "Osmani" "Adeb" "1998-03-06"
"" "Maiters" "John" "1981-07-07"
"" "Mateus" "Angela" "2004-04-04"
"5" "Sander" "Tom" "1990-05-05"
注:
- DBLookup对空值不起作用,因此在运行DBLookup之前,您可能需要筛选具有空值的行李>