Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
J'ai une procédure stockée qui insére dans une table temporaire des centaines de lignes.
Sur cette centaine, je voudrais faire plusieurs DW différentes avec des select différents mais sans refaire l'insertion dans cette table temporraire.
Comment faire ?
Exemple :
Donnée de la table temporaire : liste des clients avec leurs noms et prénoms, leurs ages, leurs pays, leurs secteurs d'activité.
DW n° 1 = tous les noms et prénoms des clients
DW n° 2 = le nombre de client par age
DW n° 3 = le nombre de client par pays
DW n° 4 = le nombre de client par secteur d'activité
NB : BDD ASE 12.5 / PB 10.2
Hors ligne
Bonjour,
Comment ta table temporaire est-elle créée ? Ou plus précisément, qu'entends-tu par table temporaire (#table, tempdb..table) ?
Pour ne pas faire que poser des questions, une piste. Je suppose que tes DW sont toutes regroupées dans la même fenêtre, et que tu ne fais pas de déconnexion / reconnexion (voulue ou sur timeout) pendant que la fenêtre est ouverte.
- Code tes DW pour ne faire que des Select sur la table temporaire, sans s'occuper de sa création ou de son alimentation.
- Dans le script Open de ta fenêtre, code en SQL embarqué un create table #table
puis exécute la procédure stockée qui remplira la table.
- Les données sont présentes, tu peux utiliser tes DW comme tu veux.
- Dans le script Close, code un drop table #table
pour rester propre.
Tout cela fonctionne parce que la table temporaire persiste tout le temps de la session, c'est à dire lusqu'à ce que PB déconnecte.
Tu ne peux pas créer #table dans une procédure stockée, vu que la table disparaît automatiquement quand la procédure se termine.
Pour éviter de coder du SQL embarqué dans du PowerScript, tu peux aussi tenter une table "temporaire permanente" de type "tempdb..table". Elle survit à la fin de session et (le cas échéant) à la fin de la procédure stockée qui l'a créée, tant que tempdb elle-même n'est pas effacée.
Hors ligne