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 :

Récupérer une variable OUT dans procédure


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de sweetasnz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2012
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Zélande

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 212
    Par défaut Récupérer une variable OUT dans procédure
    Bonjour,
    je viens de créer et tester une procédure qui me renvoie un "OUT number"

    la voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CREATE OR REPLACE PROCEDURE getnextval(idval OUT number, nomseq varchar2) IS
    BEGIN
    execute immediate 'SELECT '||nomseq||'.NEXTVAL FROM DUAL' INTO idval;
    END;
    jusqu'ici tout va bien.
    Mon problème vient lors de l'appel de cette procédure dans une requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     INSERT INTO TAB1 (col1, col2,col3)  SELECT * FROM (SELECT var1, var2 ,GETNEXTVAL(idval,'ma_seq') FROM TAB2)
    je ne sais pas comment récupérer directement mon "idval OUT" à la place de GETNEXTVAL(...)
    Comment dois-je procéder pour l'appel de cette procédure?
    des idées ?
    Merci d'avance

    ps :
    l'appel via sqlplus me renvoie "PL/SQL procedure sucexxfully completed", mais n'affiche pas la valeur retournée à l'écran :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    declare
    idval number;
    begin
    getnextval(idval,'ma_seq');
    dbms_output.put_line(idval);
    end;

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Par défaut
    Utilises une fonction plutôt qu'une procédure si tu veux l'implémenter directement dans des requêtes SQL

    l'appel via sqlplus me renvoie "PL/SQL procedure sucexxfully completed", mais n'affiche pas la valeur retournée à l'écran :
    As-tu activée l'affichage ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set serveoutput on (size 1000000)

  3. #3
    Membre expérimenté
    Avatar de sweetasnz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2012
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Zélande

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 212
    Par défaut
    Citation Envoyé par Scriuiw Voir le message
    Utilises une fonction plutôt qu'une procédure si tu veux l'implémenter directement dans des requêtes SQL
    ok, j'y pensais... je vais tester ça

    Citation Envoyé par Scriuiw Voir le message
    As-tu activée l'affichage ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set serveoutput on (size 1000000)
    Nickel ! mais petit correctif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set serveroutput on size 1000000

  4. #4
    Membre Expert
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Par défaut
    Ah oui j'ai tappé trop vite

    Précision :size est facultatif à partir de la 11g c'est pourquoi je l'avais mis entre ()

  5. #5
    Membre expérimenté
    Avatar de sweetasnz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2012
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Zélande

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 212
    Par défaut
    Ok Merci

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/06/2009, 10h54
  2. [Smarty] Récupérer une variable passée dans la barre d'adresse ?
    Par debie1108 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 25/04/2007, 02h35
  3. [PHP-JS] Récupérer une variable php dans un fichier javascript
    Par zoom61 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 03/11/2006, 11h00
  4. récupérer une variable php dans un vbscript
    Par el_butcho dans le forum VBScript
    Réponses: 3
    Dernier message: 14/09/2006, 11h39
  5. récupérer une variable javascript dans une variable java
    Par tx dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/07/2006, 17h55

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