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

Oracle Discussion :

Code retour en sortie de proc sql...


Sujet :

Oracle

  1. #1
    Nouveau candidat au Club
    Inscrit en
    Mars 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 2
    Par défaut Code retour en sortie de proc sql...
    Bonjour,

    Je n'y connais rien en SQL, je tente d'adapter un petit truc pour un besoin ponctuel.

    Le code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    DECLARE
    	ret_val INTEGER;
     
    BEGIN
    select 'Verification de l''existance de &&1 : '||DECODE(count(*), 0, 'KO', 'OK') from def_tables@ctmem where substr(sched_table,6,6) = '&&1';
     
    select distinct 'Version de &&1 : '||substr(sched_table,12,2) into ret_val from def_tables@ctmem where substr(sched_table,6,6) = '&&1';
     
    EXIT ret_val;
    END;
    Le but est de récupérer le résultat du second select pour le mettre en code retour de la proc sql...

    J'ai tenté plein de trucs mais je n'y arrive pas... Ceci est le dernier code que j'ai bricolé et je me prends l'erreur suivante...

    select 'Verification de l''existance de SFRESS : '||DECODE(count(*), 0, 'KO', 'OK') from def_tables@ctmem where substr(sched_table,6,6) = 'SFRESS';
    *
    ERROR at line 5:
    ORA-06550: line 5, column 1:
    PLS-00428: an INTO clause is expected in this SELECT statement
    ORA-06550: line 9, column 1:
    PLS-00305: previous use of 'RET_VAL' (at line 2) conflicts with this use
    ORA-06550: line 9, column 1:
    PL/SQL: Statement ignored
    Bref, si quelqu'un sait me dire comment coder ce truc, je suis preneur

    Merci

  2. #2
    Xo
    Xo est déconnecté
    Membre Expert
    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
    Par défaut
    En PL, tu ne peux faire de SELECT sans utiliser le mot-clé INTO afin d'affecter la valeur attendue dans une variable.
    Dans le cas où ton SELECT est susceptible de ramener plusieurs enregistrements, il te faut passer par un curseur

    J'ai tenté plein de trucs mais je n'y arrive pas... Ceci est le dernier code que j'ai bricolé et je me prends l'erreur suivante...
    Le mieux serait peut-être de te former un minimum avant d'attquer le code, non ?

    cf http://sheikyerbouti.developpez.com/pl_sql/ pour une bonne intro au PL/SQL
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Mars 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 2
    Par défaut
    Je suis d'accord avec toi... La formation il n'y a rien de mieux... Malheureusement, c'est un peu plus complexe que cela. Dans mon cas, il faudrait que je prenne une prestation de 5 minutes pour louer les services d'un developpeur... Les achats (car pour cela il faut que je fasse une demande d'achat de prestation) vont avoir du mal à accepter... Alors, je fais quoi... Je prends un peu de temps pour essayer de résoudre... Tout n'est pas rose dans les grosses société... Bref, je reformule ma question... Si je code cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ret_val INTEGER;
     
    select distinct 'Version de &&1 : '||substr(sched_table,12,2) into ret_val from def_tables@ctmem where substr(sched_table,6,6) = '&&1';
     
    EXIT ret_val;
    Que me manque t-il pour que cela fonctionne ?

    Merci

Discussions similaires

  1. Code retour SQL*Loader
    Par MoscoBlade dans le forum Oracle
    Réponses: 3
    Dernier message: 20/04/2007, 12h59
  2. gerer les codes retour pl/sql
    Par nadir2 dans le forum PL/SQL
    Réponses: 3
    Dernier message: 27/02/2007, 14h32
  3. code retour proc PL/sql
    Par venegan dans le forum PL/SQL
    Réponses: 10
    Dernier message: 04/01/2006, 17h06
  4. Code retour SQL server sous centura
    Par MorbidAngel dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 21/09/2005, 14h07
  5. CODE RETOUR GENERE PAR PL/SQL POUR SHELL UNIX
    Par mimi_été dans le forum PL/SQL
    Réponses: 6
    Dernier message: 18/11/2004, 08h32

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