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

PostgreSQL Discussion :

Problème de curseur


Sujet :

PostgreSQL

  1. #1
    Membre éprouvé Avatar de LaNat
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Avril 2005
    Messages : 162
    Par défaut Problème de curseur
    Bonjour,
    J'aimerais utiliser un curseur et comme je ne connais pas bien la syntaxe j'ai été me renseigner sur la documentation postgresql. Voici ma requête (très simple, pour commencer)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    declare
    moncurseur cursor for select * from frel_conc;
    open moncurseur;
    Le problème c'est que j'ai une erreur sur le open
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parse error at or near "open"
    et je ne comprends pas pourquoi sachant que j'ai respecté la syntaxe de la doc (de ma version : 7.3)
    Merci d'avance pour votre aide.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par LaNat
    Bonjour,
    J'aimerais utiliser un curseur et comme je ne connais pas bien la syntaxe j'ai été me renseigner sur la documentation postgresql. Voici ma requête (très simple, pour commencer)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    declare
    moncurseur cursor for select * from frel_conc;
    open moncurseur;
    Le problème c'est que j'ai une erreur sur le open
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parse error at or near "open"
    et je ne comprends pas pourquoi sachant que j'ai respecté la syntaxe de la doc (de ma version : 7.3)
    Merci d'avance pour votre aide.
    non justement vous ne respectez pas la syntaxe :

    declare moncurseur refcursor ;
    open moncurseur for select * from frel_conc;

    ou

    declare moncurseur cursor for select * from frel_conc;

    tout court…

  3. #3
    Membre éprouvé Avatar de LaNat
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Avril 2005
    Messages : 162
    Par défaut
    Pourtant d'après la doc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DECLARE
        curs1 refcursor;
        curs2 CURSOR FOR SELECT * from tenk1;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    19.7.2.1. OPEN FOR SELECT
     
    OPEN curs1 FOR SELECT * FROM foo
     
    19.7.2.3. Opening a bound cursor
     
    OPEN curs2;
    J'avais choisi de lier directement la requête au curseur car sinon j'ai une erreur sur refcursor

    Donc je ne l'ouvre pas? Je le déclare et je fais mon fetch juste après?

  4. #4
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2
    Par défaut
    Il faudrait que tu donnes 2-3 lignes avant ton OPEN et 2-3 lignes après... afin de voir où se situe réellement le problème.

    De plus, sache qu'il faut que tu ouvres toujours ton cursor, peut importe la maniere que tu le déclares

    Et enfin, je pense que ton erreur pourrait éventuellement venir du fait que tu fais un "SELECT * FROM ...", essaye avec un SELECT réellement sélectif, càd "SELECT champ1, champ2, champ3 FROM ....".

    Car par après tu devras (et c souvent le but d'un cruseur) récupérer les données...
    donc dans ton fetch tu auras qqch comme "FETCH moncurseur INTO var1, var2, var3" => permet donc de stocker la valeur des champs sélectionnés dans ton SELECT dans les variables de ton code prévues pour.

    Voilà...

    DaMonkey

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/03/2008, 11h36
  2. [Oracle][Spring] Problème de curseurs
    Par romaintaz dans le forum JDBC
    Réponses: 1
    Dernier message: 21/08/2006, 15h06
  3. Problème de Curseur
    Par chremy dans le forum Langage SQL
    Réponses: 1
    Dernier message: 27/07/2006, 18h17
  4. [MSDE] Problème de curseur dans une SP
    Par papouAlain dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/07/2005, 11h28
  5. [Trigger] Problème de curseur
    Par Superstivix dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/06/2004, 10h30

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