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

SQL Oracle Discussion :

Interet du CURSOR 2


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 083
    Par défaut Interet du CURSOR 2
    Bonjour,
    J'ai pris un exemple dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Oracle® Database
    PL/SQL User's Guide and Reference10g Release 2 (10.2)B14261-01
    Je l'execute avec et sans CURSOR :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    DECLARE
    CURSOR c1 IS
    SELECT last_name, salary, hire_date, job_id FROM employees
    WHERE employee_id = 120;
    -- declare record variable that represents a row fetched from the employees table
    employee_rec c1%ROWTYPE;
    BEGIN
    -- open the explicit cursor and use it to fetch data into employee_rec
    OPEN c1;
    FETCH c1 INTO employee_rec;
    DBMS_OUTPUT.PUT_LINE('Employee name: ' || employee_rec.last_name);
    END;
    /
    Ca donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    Employee name: Weiss
    Statement processed.
    0.83 secondsDBMS Output
    puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT last_name, salary, hire_date, job_id FROM employees
    WHERE employee_id = 120;
    qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    LAST_NAME SALARY HIRE_DATE JOB_ID 
    Weiss          8000    18-JUL-96   ST_MAN 
    1 rows returned in 0.00 seconds
    Je ne vois pas l'interêt de CURSOR.
    D'avance merci de m'expliquer l'interêt du CURSOR.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    Ici, non car :
    1. la requête retourne 1 seule ligne (le curseur est indispensable quand il y en a plusieurs)
    2. il n'y a pas de véritable traitement après le fetch.

    mais la doc dit aussi (http://download-uk.oracle.com/docs/c...htm#sthref1293)

    When you need precise control over query processing, you can explicitly declare a cursor in the declarative part of any PL/SQL block, subprogram, or package.

    (...)

    This technique requires more code than other techniques such as the implicit cursor FOR loop. Its advantage is flexibility. You can:

    Process several queries in parallel by declaring and opening multiple cursors.

    Process multiple rows in a single loop iteration, skip rows, or split the processing into more than one loop.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 083
    Par défaut
    Bonjour,
    merci pour votre réponse, mais la réponse reste abstraite et dépendant des circonstances à venir, quelque chose de concrète et de tangible ??
    D'avance merci

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    un curseur set à faire des actions spécifiques après chaque ligne ramenée... on peut pas faire plus concret comme explication

  5. #5
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Si tu veux plus d'explications sur l'utilisation des curseurs et leur intérêt :
    http://sheikyerbouti.developpez.com/...=Chap1#L1.2.22

Discussions similaires

  1. [ ORACLE ][ STRUTS ] [ JAVA ] maximum open cursor
    Par LoulouFifi dans le forum Struts 1
    Réponses: 21
    Dernier message: 30/03/2011, 11h52
  2. [Interbase 6][CURSOR] Déclaration de curseur
    Par nico82 dans le forum InterBase
    Réponses: 2
    Dernier message: 05/10/2004, 15h45
  3. Wait cursor et accessibilité des menus
    Par Depteam1 dans le forum MFC
    Réponses: 3
    Dernier message: 23/09/2004, 19h01
  4. [forms] ref cursor associé à un bloc de données
    Par plaineR dans le forum Forms
    Réponses: 9
    Dernier message: 27/08/2004, 18h26
  5. REF CURSOR... Comment ça marche ?
    Par Patkaza dans le forum SQL
    Réponses: 6
    Dernier message: 28/04/2004, 14h26

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