sélectionner * à partir de stuinfo ; --Curseur implicite Début dbms_output.put_line('Avant-requête :'|| sql %rowcount) ; mise à jour Stuinfo Set Stusex = « Femme » ; dbms_output.put_line('Après requête :'|| sql %rowcount) ; fin ;
--curseur explicite --1. Commun déclarer curseur mycur1 est select * depuis stuinfo ; --définissent les curseurs --v_id stuinfo.stuid %type ; --v_name stuinfo.stuname %type ; --v_sex stuinfo.stusex %type ; --v_bir stuinfo.stubir %type ; v_row stuinfo %rowtype ; Début Ouvre MyCur1 ; --Curseur ouvert Boucle --récupérer mycur1 dans v_id,v_name,v_sex,v_bir ; --Descendez le curseur pour placer la valeur de lecture dans la variable récupérer mycur1 dans v_row ; --Lire le curseur quitter quand mycur1 %notfound ; --dbms_output.put_line('id :'|| v_id||', nom : '|| v_name||', genre : '|| v_sex||' Date de naissance : '|| v_bir) ; --Résultat de sortie dbms_output.put_line('id :'|| v_row.stuid||', nom : '|| v_row.stuname||', genre : '|| v_row.stusex||' Date de naissance : '|| v_row.stubir) ; boucle de fin ; fermer mycur1 ; --Désactivez le curseur fin ;
--2. Versificateur avec paramètres déclarer le curseur mycur1(v_sex stuinfo.stusex %type) est select * from stuinfo où stusex = v_sex ; --définissent les curseurs v_row stuinfo %rowtype ; Début ouvre mycur1('&genre') ; --Curseur ouvert Boucle récupérer mycur1 dans v_row ; --Lire le curseur quitter quand mycur1 %notfound ; dbms_output.put_line('id :'|| v_row.stuid||', nom : '|| v_row.stuname||', genre : '|| v_row.stusex||' Date de naissance : '|| v_row.stubir) ; boucle de fin ; fermer mycur1 ; --Désactivez le curseur fin ;
--3. Curseur circulaire déclarer curseur mycur1 est select * depuis stuinfo ; --définissent les curseurs Début pour v_row dans mycur1 Boucle dbms_output.put_line('id :'|| v_row.stuid||', nom : '|| v_row.stuname||', genre : '|| v_row.stusex||' Date de naissance : '|| v_row.stubir) ; boucle de fin ; fin ;
--4. Mettre à jour les données avec le curseur déclarer Curseur mycur1 est sélectionné * depuis stuinfo pour la mise à jour ; --définissent les curseurs Début pour v_row dans mycur1 Boucle si v_row.stuid = '003' alors supprimer de stuinfo où est courant mycur1 ; sinon Mise à jour Stuinfo Set Stusex = « mâle » où courant est MyCur1 ; fin si ; boucle de fin ; fin ;
sélectionner * à partir de stuinfo ; mettre à jour l’ensemble stuinfo stusex = « féminin » où stuid = « 002 » ;
--curseur de référence --1. Type faible déclarer Le type curname est curseur de référence ; --définissez un type de curseur (le nom de cur est le nom du type) mycur1 curname ; -- v_sex stuinfo.stusex %type ; v_row stuinfo %rowtype ; v_row2 subinfo %rowtype ; Début v_sex := '& genre' ; si v_sex = « mâle » alors Ouvrez MyCur1 pour sélectionner * depuis Stuinfo où Stusex = « Masculin » ; Boucle récupérer mycur1 dans v_row ; --Lire le curseur quitter quand mycur1 %notfound ; dbms_output.put_line('id :'|| v_row.stuid||', nom : '|| v_row.stuname||', genre : '|| v_row.stusex||' Date de naissance : '|| v_row.stubir) ; boucle de fin ; sinon Ouvre MyCur1 pour sélectionner * depuis sous-info ; Boucle récupérer mycur1 dans v_row2 ; --Lire le curseur quitter quand mycur1 %notfound ; boucle de fin ; fin si ; fermer mycur1 ; --Désactivez le curseur fin ; sélectionner * depuis sous-info ;
--Type fort déclarer Type Curname is ref cursor return stuinfo %rowtype ; mycur1 curname ; v_sex stuinfo.stusex %type ; v_row stuinfo %rowtype ; Début v_sex := '& genre' ; si v_sex = « mâle » alors Ouvrez MyCur1 pour sélectionner * depuis Stuinfo où Stusex = « Masculin » ; sinon Ouvrir MyCur1 pour sélectionner * depuis Stuinfo où Stusex = « Femme » ; fin si ;
Boucle récupérer mycur1 dans v_row ; --Lire le curseur quitter quand mycur1 %notfound ; dbms_output.put_line('id :'|| v_row.stuid||', nom : '|| v_row.stuname||', genre : '|| v_row.stusex||' Date de naissance : '|| v_row.stubir) ; boucle de fin ; fermer mycur1 ; --Désactivez le curseur fin ;
|