Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 12902|Répondre: 1

[Source] Curseurs normaux Oracle, curseurs implicites et curseurs paramétrés

[Copié le lien]
Publié sur 19/03/2015 10:53:06 | | |
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 ;







Précédent:« Richesse et Partie d’échecs » - dévoilant l’histoire intérieure de l’amour, du travail et de l’examen d’entrée aux études supérieures
Prochain:Php5.2.17 doit changer la valeur de cgi.force_redirect de 1 à 0 lors de l’installation
Publié sur 19/03/2015 11:21:08 |
Mis de côté lesson6.rar (920 Bytes, Nombre de téléchargements: 0)
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com