Kettle中的JavaScript中有个可选项【兼容模式】。官方资料是说,选了【兼容模式】之后,使用的是JavaScript 2.5引擎,如果不选该选项,则使用的是JavaScript 3.0引擎(由于对JavaScript了解的不是特别多,所以这两个版本的JavaScript的区别也不太清楚)。本来在使用这个转换时,都是默认勾选【兼容模式】的,但在某些情况下反而会导致错误。创建如下转换任务:
其中,【表输入】中的配置如下:
这里需要先来关注一下country表中三个字段的数据类型:
下面要在【JavaScript代码】中处理这三个字段,以下都勾选了【兼容模式】:
- 当【JavaScript代码】处理timestamp类型数据时会报ReferenceError错误。
- 当【JavaScript代码】中处理Int类型/String型的数据时报Couldn't add Input fields to Script错误
以上这两种情况,如果不勾选【兼容模式】都是可以正常处理的。