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 :

Renvoyer une table avec une proc. stock.


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Par défaut Renvoyer une table avec une proc. stock.
    Bonjour à tous,

    J'ai une questionqui certainement vous semblera à tous très facile !!

    J'ai créé une procédure qui fait des INSERT et des UPDATE dans une table. Jusque là tout va bien.
    Là où ça pose problème c'est que je souhaite récupérer en sortie la table en question.
    Voilà ce que je voudrais faire :

    Declare
    -- variables et curseurs
    Begin
    --Insert et Update dans MA_TABLE
    /*partie qui ne fonctionne pas */
    select * from MA_TABLE;
    end;

    Je suis sous Orable 9i et pour répondre à la question qui brule vos levres : je suis obligée de passer parce biais car j'utilise derrière un outil de décisionnel qui demande que les procédures renvoient des valeurs pour fonctionner.

    Merci par avance pour votre aide et n'hésitez pas à poser des questions si je n'est pas été claire !!

    @+

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut
    Si j'ai bien compris ce que tu veux, il te faut utiliser une fonction et renvoyer un curseur sur ta table.
    1)il te faut créer un type (dans ton package, si tu en as un ou dans un nouveau) pour la référence de curseurqu’on va renvoyer
    create or replace package Types AS
    type curseur_type is ref cursor;
    end Types;


    2) ta fonction ressemblerait à :

    create or replace
    function maFonction()
    return Types.curseur_type
    is
    monCurseur Types.curseur_type;
    begin
    open monCurseur for
    select * from MA_TABLE;
    return monCurseur;
    end;

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Par défaut
    Merci pour l'info, je teste de ce pas !!!

    Juste une précision : peut-on appeler une fonction dans une procédure ?

    Pourquoi ? Parce que forcément mon outil décisionnel n'accepte que les procédures stockées et pas autres choses

    @+
    Darcynette

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut
    Citation Envoyé par Darcynette Voir le message
    Juste une précision : peut-on appeler une fonction dans une procédure ?
    Tu peux.
    Ou alors, tu gardes ta procédure et tu lui mets le curseur en paramètre out

    procedure maProc(monCurseur out Types.curseur_type)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Par défaut
    euh...
    Je comprends pas comment utiliser la fonction dans ma procédure...
    d'après les docs, il faut affecter la fonction à une variable !
    Je pensais utiliser un curseur mais du coup, je ne vois pas comment afficher le résultat de ma fonction

    Si quelqu'un peut encore m'aider

    Merci
    Darcynette

  6. #6
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 7
    Par défaut
    essaye ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    procedure maProc ( C1 OUT SYS_REFCURSOR)
    IS
    BEGIN
    open C1 for select taFonction from dual;
    END;

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/01/2015, 16h10
  2. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  3. [MySQL] requete dans une table avec une varible d'une autre table
    Par kogoi dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 03/11/2011, 15h24
  4. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50
  5. Réponses: 6
    Dernier message: 30/08/2007, 16h47

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