Bonjour,

Je fais une procédure d'import de données qui va utiliser un MERGE. Sauf méconnaissance de ma part, il me faut un curseur pour alimenter ce MERGE, non ?

Pour le moment, le début de ma procédure est ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
CREATE OR REPLACE PROCEDURE PR_IMPORT_PEF_CARTE_MUT 
IS
    annee_universitaire integer;
    mois_actuel integer;
 
    CURSOR import_pef IS
        SELECT "id_individu", "civilite", "nom_usuel", "nom-patronymique", "prenom", "date_naissance", "ine", "date_debut_validite", "droit_photo", "droit_import",
            "e_mail", "code_nationalite", "adresse1", "adresse2", "adresse3", "code_postal", "ville", "code_pays", "autre_adresse1", "autre_adresse2", "autre-adresse3", 
            "autre_code_postal", "autre_ville", "autre_code_pays", "telephone1", "telephone2", "niveau", "code_sise_formation", "formation", "echange_internationaux",
            "sens-echange", "date_inscription", "annee_universitaire", "civilite2"
        FROM "v_carte_mut"@pef
        WHERE "annee_universitaire" = annee_universitaire;
BEGIN
    -- Calcul de l'année universitaire
    SELECT EXTRACT(MONTH FROM CURRENT_DATE) INTO mois_actuel FROM dual;
 
    IF mois_actuel > 6 THEN 
        SELECT EXTRACT(YEAR FROM CURRENT_DATE) - 1 INTO annee_universitaire FROM dual;
    ELSE
        SELECT EXTRACT(YEAR FROM CURRENT_DATE) INTO annee_universitaire FROM dual;
    END IF;
 
    -- Récupération de la vue pef.v_carte_mut
 
END PR_IMPORT_PEF_CARTE_MUT;
J'ai d'abord développé la partie calcul de l'année universitaire puis je pensais développer le curseur après mais, d'après les exemples que j'ai vus, il faut déclarer et développer le curseur dans la partie de déclaration des variables. Et comme ce curseur à besoin de la valeur calculée de l'année universitaire, je suis un peu coincé.

Puis-je simplement déclarer le curseur et l'alimenter plus tard dans le corps de la procédure ?
Ou alors il y a plus simple ?