实验任务:用kettle将postgreql中的数据,根据某个字段大于或小于某个值的数据输出到文本文件和数据库中。
1、首先建立转换,如图
获取系统信息中的变量如图
表输入中,连接的是postgresql,元数据如图
双击表输入得到test表,利用where语句中的?代替变量
注意,?代表转换中的命令参数1,默认的是character类型,而数据库中id是integer类型,所以要对?进行强制转换成numerica,注意要勾选替换sql语句里的变量,选择获取系统信息,其中命令参数1就是?,指的是(稍后在点击运行时出现)。文本文件输出选择指定地点即可。然后点击运行,如图
2、此时点击运行会报错,
主要是因为数据库中的text类型和character varing无法输出到txt中,将数据库中的text类型和character varing改成char类型即可,另外如果往数据库中输出,text类型和character varing是不会报错的。(text类型确实是不能输出到TXT中,但是能输出到csv文件中)
3、由于?是char类型,所以当数据库中id如果是char类型,则不用强转,可以直接比较。
本文档介绍了如何使用Kettle转换从PostgreSQL数据库中选取特定字段大于或小于某个值的数据,将其输出到文本文件和数据库。在创建转换过程中,需要注意变量类型匹配、SQL语句中的条件替换以及处理text类型的数据库字段。在运行时,可能出现因数据类型不匹配导致的错误,解决方法是调整数据库字段类型或进行类型转换。

1642

被折叠的 条评论
为什么被折叠?



