Bonsoir,
Pas forcément besoin d'un bind
Je suis en 18.1, je ne sais pas si cette façon marche sur des versions antérieures. Tu peux faire ainsi :
- Un process père, sur lequel tu glisses ta table comme pour une connexion
- A l'intérieur du process : une "xsl variable", de type "xpath" avec le code "$this/metaDataLink/mdj:getMetaDataRef(.)" . Tu l'appelles "TABLE_NAME"
- Sur le traitement que tu souhaites répéter (un process, un SQL...), dans l'onglet "Generation", partie "Repetition"
- Xpath query : $TABLE_NAME/ref:columns()
- Variable Name : CURRENT_COLUMN
- Si tu as besoin d'une connexion, remplis le paramètre SQL_CONNECTION avec %connection{$TABLE_NAME}%
Et à partir de là, tu peux appeler ta variable qui correspond au nom de colonne avec la syntaxe %x{$CURRENT_COLUMN/tech:name()}x% (au lieu de :{CURRENT_COLUMN}: pour un bind classique)
L'avantage de faire comme ça, c'est que tu as un SQL généré par requête (contrairement au bind qui ne montre pas le SQL exact généré, et surtout ne donne pas la valeur de variable pour laquelle tu aurais une erreur).
Il existe des moyens pour exclure certaines colonnes, n'hésite pas à demander, je t'ai donné la version courte.
Par contre, cela implique que ta métadonnée soit identique à ce qui existe physiquement.
Pour un besoin similaire sur Oracle, j'ai fini par passer par la table dictionnaire (DBA_TAB_COLUMNS de mémoire)...
Et cette fois-ci, tu peux bien y aller avec un bind.
Bonne soirée
Emmanuel