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

Langage SQL Discussion :

Problème de Curseur


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème de Curseur
    Bonjour à tous.

    Voilà depuis hier après midi, je suis bloqué sur cette procédure,
    et je ne vois pas où cela cloche.

    La procédure (en bleu c'est là que ça coince ):


    BEGIN
    declare v_code_type_erreur int;
    declare compteur bigint default 0;
    declare v_count bigint;
    declare at_end int default 0;
    declare v_TYPE_DOSSIER varchar(1);
    declare v_COD_TYP_DOSS_GEO varchar(3);
    declare not_found condition for sqlstate '02000';
    declare v_COD_TYPE_ERR_BDX varchar(50);

    set o_msg='';

    SELECT D_TYPE_DOSSIER, COD_TYPE_DOSS_GEO into v_TYPE_DOSSIER, v_COD_TYP_DOSS_GEO
    FROM ADMDB2.T530_DOSSIERS
    WHERE D_NUM_DOSSIER = i_num_dossier
    AND COD_COLLECTEUR = i_cod_collecteur;

    UPDATE ADMDB2.T530_DOSSIERS
    SET D_ERREURS = ''
    WHERE D_NUM_DOSSIER = i_num_dossier AND COD_COLLECTEUR = i_cod_collecteur;


    DECLARE cur CURSOR FOR
    SELECT COD_TYPE_ERREUR
    FROM ADMDB2.T517_ERREUR_DOSSIER
    WHERE D_NUM_DOSSIER = i_num_dossier
    AND COD_COLLECTEUR = i_cod_collecteur;

    declare CONTINUE HANDLER FOR not_found SET at_end = 1;
    SELECT Count(1) into v_count
    FROM ADMDB2.T517_ERREUR_DOSSIER
    WHERE D_NUM_DOSSIER = i_num_dossier AND COD_COLLECTEUR = i_cod_collecteur;


    OPEN cur;

    ins_loop:
    loop
    if compteur >= v_count then
    LEAVE ins_loop;
    end if;

    FETCH cur INTO v_code_type_erreur;

    SELECT COD_TYPE_ERR_BDX into v_COD_TYPE_ERR_BDX
    FROM ADMDB2.T508_TYPE_ERREUR_BDX
    WHERE COD_TYPE_ERREUR = v_code_type_erreur
    AND COD_COLLECTEUR = i_cod_collecteur
    AND COD_TYP_DOSS_GEO = v_COD_TYP_DOSS_GEO
    AND D_TYPE_DOSSIER = v_TYPE_DOSSIER;

    set o_msg = o_msg concat ', ' concat v_COD_TYPE_ERR_BDX;
    set compteur = compteur + 1;

    END loop ins_loop;

    CLOSE cur;

    UPDATE ADMDB2.T530_DOSSIERS
    SET D_ERREURS = o_msg
    WHERE D_NUM_DOSSIER = i_num_dossier
    AND COD_COLLECTEUR = i_cod_collecteur;

    END @

    Ci dessous le message d'erreur :

    27/07/2006 09:13:45 DB21034E La commande a été traitée comme une instruction SQL car il ne s'agit pas d'une commande valide pour l'interpréteur de commandes. Le message SQL suivant a été renvoyé lors de son traitement :
    27/07/2006 09:13:45 SQL0104N Une marque inattendue "<cursor declaration>" figure à la suite de "". Parmi les marques attendues, on trouve : "<SQL statement>". LINE NUMBER=36. SQLSTATE=42601

    27/07/2006 09:13:45 GRANT EXECUTE ON PROCEDURE ADMDB2.GENERR TO PUBLIC
    27/07/2006 09:13:45 DB21034E La commande a été traitée comme une instruction SQL car il ne s'agit pas d'une commande valide pour l'interpréteur de commandes. Le message SQL suivant a été renvoyé lors de son traitement :
    27/07/2006 09:13:45 SQL0204N Le nom "ADMDB2.GENERR" n'est pas défini. SQLSTATE=42704


    Voilà, si quelqu'un sait comment faire, merci du coup de pouce.

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Merci de préciser le SGBD ? Ce sujet sera déplacé dans le forum lui correspondant, le forum SQL ne traitant pas des langages procéduraux

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/03/2008, 12h36
  2. Problème de curseur avec champ déscativé/activé
    Par picatchou dans le forum Access
    Réponses: 2
    Dernier message: 07/09/2006, 18h32
  3. [Oracle][Spring] Problème de curseurs
    Par romaintaz dans le forum JDBC
    Réponses: 1
    Dernier message: 21/08/2006, 16h06
  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, 12h28
  5. [Trigger] Problème de curseur
    Par Superstivix dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/06/2004, 11h30

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