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 :

Passage de valeur à un curseur


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de pascal_T
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 95
    Par défaut Passage de valeur à un curseur
    J'ai mis en place un script ou je souhaite passer une valeur en paramètre au curseur, mais il semble que ma déclaration ne soit pas correcte. Voici le code:

    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
    52
    53
    54
    55
     
    declare
     
    cursor req_agtnat ( matricule NUMBER) is
    select idf_agent from agtnat
    where idf_agent = matricule ; 
     
    cursor req_agtgrd (matricule NUMBER ) is
    select dat_debut,cod_posagt from agtgrd
    where idf_agent = matricule
    and dat_debut < '01/10/2008'
    order by dat_debut desc;
     
    date1 agtgrd.dat_debut%type;
    date2 agtgrd.dat_debut%type;
    code1 agtgrd.dat_debut%type;
    code2 agtgrd.dat_debut%type;
    trouve boolean;
     
    begin
     
    open req_agtnat (10);
    open req_agtgrd (10);
    fetch req_agtgrd into date1,code1;
    date2 := date1;
    code2 := code1;
    trouve := false;
    loop
     
    code1 := code2;
    date1 := date2;
    fetch req_agtgrd into date2,code2;
    exit when req_agtgrd%NOTFOUND;
    if ( code2 not in ( 'AC','AP','CP','AT','AD','CA','LM','BG','FO','CB','LD','MA','ES','MT','ST')
         and code1 in ( 'AC','AP','CP','AT','AD','CA','LM','BG','FO','CB','LD','MA','ES','MT','ST')
        )
    then
    dbms_output.put_line ('la date d''entrée est:'||to_char (date1,'DD-MON-YYYY'));
    trouve := true;
    end if;
     
    exit when 
    ( code2 not in ( 'AC','AP','CP','AT','AD','CA','LM','BG','FO','CB','LD','MA','ES','MT','ST')
         and code1 in ( 'AC','AP','CP','AT','AD','CA','LM','BG','FO','CB','LD','MA','ES','MT','ST')
    );
     
    end loop;
     
    if not trouve then
    dbms_output.put_line ('la date d''entrée est:'||to_char (date2,'DD-MON-YYYY'));
    end if;
     
     
    end;
    /
    Mais à l'exécution sous Toad j'ai ça:

    Error at line 7
    ORA-01858: caractère non numérique rencontré à la place d'un numérique
    ORA-06512: à ligne 23
    Je ne vois pas ce qui ne lui va pas. Qui pourrait éclairer ma lenterne

  2. #2
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    Es tu sûr que ça c'est correct (ligne 13 à ligne 16)?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    date1 agtgrd.dat_debut%type;
    date2 agtgrd.dat_debut%type;
    code1 agtgrd.dat_debut%type;
    code2 agtgrd.dat_debut%type;
    code1 et code2 sont de quel type?

  3. #3
    Membre confirmé Avatar de pascal_T
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 95
    Par défaut
    Oh la fève que je fais
    J'ai lu 50 000 fois le script et je suis passé devant à chaque fois !

    Merci tu es un chef!


  4. #4
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    Y'a pas de quoi.

  5. #5
    Nouveau candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 2
    Par défaut Passage de paramètre dans une procédure PL/SQL
    Citation Envoyé par pascal_T Voir le message
    J'ai mis en place un script ou je souhaite passer une valeur en paramètre au curseur, mais il semble que ma déclaration ne soit pas correcte. Voici le code:

    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
    52
    53
    54
    55
     
    declare
     
    cursor req_agtnat ( matricule NUMBER) is
    select idf_agent from agtnat
    where idf_agent = matricule ; 
     
    cursor req_agtgrd (matricule NUMBER ) is
    select dat_debut,cod_posagt from agtgrd
    where idf_agent = matricule
    and dat_debut < '01/10/2008'
    order by dat_debut desc;
     
    date1 agtgrd.dat_debut%type;
    date2 agtgrd.dat_debut%type;
    code1 agtgrd.dat_debut%type;
    code2 agtgrd.dat_debut%type;
    trouve boolean;
     
    begin
     
    open req_agtnat (10);
    open req_agtgrd (10);
    fetch req_agtgrd into date1,code1;
    date2 := date1;
    code2 := code1;
    trouve := false;
    loop
     
    code1 := code2;
    date1 := date2;
    fetch req_agtgrd into date2,code2;
    exit when req_agtgrd%NOTFOUND;
    if ( code2 not in ( 'AC','AP','CP','AT','AD','CA','LM','BG','FO','CB','LD','MA','ES','MT','ST')
         and code1 in ( 'AC','AP','CP','AT','AD','CA','LM','BG','FO','CB','LD','MA','ES','MT','ST')
        )
    then
    dbms_output.put_line ('la date d''entrée est:'||to_char (date1,'DD-MON-YYYY'));
    trouve := true;
    end if;
     
    exit when 
    ( code2 not in ( 'AC','AP','CP','AT','AD','CA','LM','BG','FO','CB','LD','MA','ES','MT','ST')
         and code1 in ( 'AC','AP','CP','AT','AD','CA','LM','BG','FO','CB','LD','MA','ES','MT','ST')
    );
     
    end loop;
     
    if not trouve then
    dbms_output.put_line ('la date d''entrée est:'||to_char (date2,'DD-MON-YYYY'));
    end if;
     
     
    end;
    /
    Mais à l'exécution sous Toad j'ai ça:



    Je ne vois pas ce qui ne lui va pas. Qui pourrait éclairer ma lenterne

    Ton code est bon.
    ON ne peut exécuté une procédure pl/sql qui a un paramètre en entrée avec la version 10g de TOAD .
    Télécharges SQLDEVELOPER et lance ta procédure, elle s'exécutera.

    ESFA92

  6. #6
    Nouveau candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 2
    Par défaut
    Ton code est bon.
    On ne peut pas exécuté une procédure pl/sql qui a un paramètre en entrée ou en sortie avec la version 10 g d' oracle sous TOAD.
    Télécharge sqldeveloper et lance ta procédue .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passage par valeur / passage par adresse
    Par jeje99 dans le forum C++
    Réponses: 13
    Dernier message: 16/02/2006, 10h29
  2. Réponses: 3
    Dernier message: 09/01/2006, 09h44
  3. Réponses: 7
    Dernier message: 18/05/2005, 15h09
  4. Passage de valeurs entre fenêtres différentes
    Par Amnesiak dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/02/2005, 15h10
  5. [C#] Passage de valeur d'une fenêtre à une autre
    Par groum999 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 13/09/2004, 14h12

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