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

PL/SQL Oracle Discussion :

probléme avec les curseurs


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 686
    Par défaut probléme avec les curseurs
    Salut
    J'ai un problème avec les curseurs lorsque la condition utilise le comparateurIN
    voici la déclaration de mon curseur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cursor crs(where_st VARCHAR2) is SELECT lib_doc from document where typ_doc in  where_st;
    voici le code utilisé pour appeler le curseur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var_where_stm:='(''liv'',''cd'')';
    DBMS_OUTPUT.PUT_LINE('var_where_stm='||var_where_stm);
    FOR V_STR IN crs(var_where_stm) 
        LOOP   
           DBMS_OUTPUT.PUT_LINE('resultat='||V_STR.lib_doc);
        end loop;
    La chose bizarre est que la valeur var_where_stm affiché est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var_where_stm=('liv','cd')
    et lorsque je remplace le parametre where_st dans la déclaration du curseur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cursor crs(where_st VARCHAR2) is SELECT lib_doc from document where typ_doc in  ('liv','cd');
    le curseur dans ce cas fonctionne bien!!

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611

  3. #3
    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
    Sinon en PL/SQL tu peux utiliser un ref cursor.

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Citation Envoyé par plaineR Voir le message
    Sinon en PL/SQL tu peux utiliser un ref cursor.
    Et comment un ref cursor peut aider dans ce cas ?

  5. #5
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    sinon du INSTR avec un formatage différent du var_where_stm
    Petite restriction, le séparateur "," ne doit pas exister dans la colonne (facilement contournable en mettant un chr(1) )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var_where_stm := 'liv,cd';
    CURSOR crs(where_st VARCHAR2) IS 
    SELECT lib_doc 
    FROM DOCUMENT 
    WHERE INSTR(','|| var_where_stm ||',',  ','|| typ_doc ||',') > 0

  6. #6
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Citation Envoyé par McM Voir le message
    sinon du INSTR avec un formatage différent du var_where_stm
    Petite restriction, le séparateur "," ne doit pas exister dans la colonne (facilement contournable en mettant un chr(1) )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var_where_stm := 'liv,cd';
    CURSOR crs(where_st VARCHAR2) IS 
    SELECT lib_doc 
    FROM DOCUMENT 
    WHERE INSTR(','|| var_where_stm ||',',  ','|| typ_doc ||',') > 0
    @McM
    Votre exemple ne peut pas fonctionner tel que vous l'avez exemplifié.

  7. #7
    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
    Citation Envoyé par mnitu Voir le message
    Et comment un ref cursor peut aider dans ce cas ?
    Comme cela :
    http://www.developpez.net/forums/d14...in/#post948157

  8. #8
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    686
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 686
    Par défaut
    Merci pour vos aides.
    Je veut bien essayer et vous informer ensuite du resultat

  9. #9
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Votre exemple montre comment employer le SQL Dynamique et les variables curseur (ref cursor) y sont pour rien.

Discussions similaires

  1. probléme avec les curseurs explicites dynamiques
    Par madina dans le forum PL/SQL
    Réponses: 3
    Dernier message: 06/08/2010, 13h45
  2. Problème avec les curseurs SQL SERVER
    Par stefostillrise dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/11/2005, 13h09
  3. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39
  4. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  5. []Problème avec les formulaires Outlook
    Par Invité dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59

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