IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

PL/SQL : Cursor


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 14
    Par défaut PL/SQL : Cursor
    Bonjour!

    Voilà une question que je vais vous poser après avoir eu tant de mal pour comprendre!

    J'arrive pas à comprendre le role des cursor dans PL/SQL , et son mode d'emploi!

    Merci bcp bcp d'avance!

  2. #2
    Membre confirmé Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Par défaut
    Salut je pense qu'il en a des différentes mais moi par exemple je l'utilise pour parcourir un table .

    Voici un exemple de traitement (j'ai supprimer des truc pour le simplifier) :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    create or replace PROCEDURE BDEHISTO AS
     
    v_Periodicite   number;
    v_table		  	varchar2(50);
    v_table_exception varchar2(50);
    v_requete		varchar2(2000);
    v_verif_purge   varchar2(100);
    v_error_code	varchar2(50);
    v_error_message	varchar2(100);
    l_date_debut 	VARCHAR2(64) := To_CHAR(SYSDATE,'DD-MON-YYYY HH24:MI:SS');
    v_cpt number ;
     
    cursor C1 is
    	   select Latable,periodicite,ladate, ladate2, jointure
    	   from histo;
     
    C1r	   C1%ROWTYPE;
     
    BEGIN    
    OPEN C1;
        FETCH C1 INTO C1r;
     
        -- on parcours la table Histo
        while C1%FOUND loop
          -- on verifie que la table n'est pas vide
          v_requete:='SELECT COUNT(*) FROM '||C1r.Latable||'@bdepkg';
          EXECUTE IMMEDIATE v_requete into v_cpt ;
     
          v_table_exception := C1r.latable;
     
        -- si =0 on ne met rien a jour
    		if v_cpt>0 then
    			if C1r.jointure='VBL' then
            v_table_exception:=v_table_exception || ' VBL';
            v_requete := 'delete from '||C1r.latable||' where chronocd in ( select chronocd from vbl@bdepkg where to_date(dpre,''DD/MM/YY'') > TO_DATE(TO_CHAR(SYSDATE-'|| C1r.periodicite||',''DD/MM/YY''),''DD/MM/YY''))';
    				EXECUTE IMMEDIATE v_requete;
    				commit;
     
    				v_requete := 'insert into '||C1r.latable||' select * from '||C1r.latable||'@bdepkg where chronocd in ( select chronocd from vbl@bdepkg where to_date(dpre,''DD/MM/YY'') > TO_DATE(TO_CHAR(SYSDATE-'|| C1r.periodicite||',''DD/MM/YY''),''DD/MM/YY''))';
    				EXECUTE IMMEDIATE v_requete;
    				commit;
     
     
    			end if;
    		end if;  
        FETCH C1 into C1r;
     
        end loop;
    CLOSE C1;
    end;
    en faite je parcours la table et ainsi je peux récupérer certaint champs de la ligne ...

Discussions similaires

  1. pB pL:sql CURSOR
    Par gdavezac dans le forum PL/SQL
    Réponses: 13
    Dernier message: 27/02/2009, 13h29
  2. Réponses: 1
    Dernier message: 05/12/2005, 12h50
  3. PL/SQL cursor
    Par lapartdombre dans le forum PL/SQL
    Réponses: 2
    Dernier message: 02/11/2005, 14h30
  4. les cursor sur sql serveur
    Par hoummass dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 03/10/2005, 17h10
  5. [PL/SQL] requete qui marche mais pas dans un cursor
    Par victor.ward dans le forum Langage SQL
    Réponses: 3
    Dernier message: 09/09/2005, 22h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo