Bonjour à tous !
Petit copier / collé d’un ami grand lecteur de la zone, qu’à son travail ils sont méchant et la zone qu’elle est bloquée
Salut tout le monde,
J’ai une petite question sur du code pl/sql ^^. Je vous explique ce que je veux faire :
J’ai 2 tables :
- shippings, clé primaire : shipping_code
- packing, clé primaire : (shipping_code, pack_code)
Pour une shipping il y a 1 à n packing associé.
J’ai une procédure qui efface des lignes de la table packing mais qui n’efface pas forcément toutes les packings associées à une shipping.
J’ai donc besoin de vérifier si pour une liste de shipping_code donnée (obtenue via un select) il reste (ou pas) des packings associés. Et je dois ensuite effacer les lignes de la table shippings qui n’ont plus de packings associés.
D’après mes recherches, une solution est d’utiliser les curseurs avec un truc du genre :
[code]DECLARE
cursor num_shipping is
mon_select_qui_recupere_les_shipping_code;
num1 integer;
num2 integer;
BEGIN
open num_shipping;
Loop
Fetch num_shipping into num1;
select count (*) into num2 from packing where shipping_code = num1;
if (num2 = 0)
then
delete from shippings where shipping_code = num1;
end if;
End Loop;
close num_shipping;
END;[/code]
Voilà, si l’un d’entre vous a le temps de jeter un coup d’oeil et de me dire si ça semble correct ou non par
rapport à ce que je cherche à faire, ce serait sympa.
Si je me suis mal expliqué n’hésites pas à me demander.
Merci d’avance.
Et je vous remercie également par avance !
Bonne journée.