我正在尝试在CloverETL Designer中构建一个ETL脚本,作为其处理的一部分,它构建一个临时表,然后在连接中使用它。由于特定于系统的原因,不在事务块之外的临时表是理想的,因此我试图避免创建视图或标准表。正在通过JDBC驱动程序与所涉及的数据库建立连接。
我已经知道临时表和使用该表后面的查询的SQL。
但是,我并不完全确定在CloverETL下执行此操作的最佳方法是什么。我可以让DBExecute在与DBInputTable相同的事务块中运行吗?我最好的办法是将两个表放入本地数据库,然后从那里开始使用它们吗?
有任何想法或建议吗?
答案 0 :(得分:1)
要使Clover组件在同一事务中工作,您需要指定 threadSafeConnection =“false”。默认情况下,此参数设置为 true ,因此每个组件都使用自己的连接实例来处理数据库。您可以在CloverETL论坛上找到几个主题,详细描述问题,例如: http://forum.cloveretl.org/viewtopic.php?f=4&t=3342 http://forum.cloveretl.org/viewtopic.php?f=7&t=3431