我用Kettle做数据抽取和清洗时,在转换中放入单独的执行SQL脚本控件,里面有多个update语句。转换执行成功,但实际上数据库表里有些数据是没有更新成功的。
我尝试把sql拆开,放在一个一个单独的执行SQL脚本,转换执行不成功。
是不是执行SQL脚本里的SQL语句也是并行执行的呢?怎样才可以让SQL语句按顺序完整地执行下来呢?
是不是因为你的【执行SQL脚本】组建中,“执行每一行?”打了对钩。如果该组件作为转换的第一个组件,不能打钩!!!否则SQL不会执行
在官方文档中提示:
•如果转换意外停止,验证是否 “Execute for each row?”选项被选中。要在转换的初始化阶段启动SQL,请确保为“Execute for each row?”选项未选中。
执行sql优先级是比转换高的,会优先执行这个,你可以勾选执行sql里的执行每一条,放在你想放的转换后面,就可以按照顺序执行