2011-05-10 6 views
1

Je tente de construire un script ETL dans CloverETL Designer qui, dans le cadre de son traitement, génère une table temporaire qu'il utilise ensuite dans une jointure. Pour des raisons spécifiques au système, une table temporaire qui ne dure pas en dehors du bloc de transaction est idéale, et j'essaie donc d'éviter de créer une vue ou une table standard. Les connexions sont effectuées via un pilote JDBC vers les bases de données impliquées.Blocs de transaction CloverETL pour tables temporaires

Je connais déjà le SQL pour la table temporaire et la requête qui suit en utilisant cette table.

Cependant, je ne suis pas entièrement sûr de la meilleure façon de faire cela sous CloverETL. Puis-je obtenir un DBExecute à exécuter dans le même bloc de transaction qu'un DBInputTable? Est-ce que mon meilleur pari va être d'apporter les deux tables dans la base de données locale et ensuite de travailler avec eux à partir de là?

Des idées ou des suggestions?

Répondre

1

Pour que les composants Clover fonctionnent dans la même transaction, vous devez spécifier threadSafeConnection = "false". Par défaut, ce paramètre est défini sur true, de sorte que chaque composant utilise sa propre instance de connexion pour travailler avec la base de données. Vous pouvez trouver un peu de sujets sur le forum CloverETL, qui décrivent le problème dans les détails, par exemple: http://forum.cloveretl.org/viewtopic.php?f=4&t=3342 http://forum.cloveretl.org/viewtopic.php?f=7 & t = 3431

Questions connexes