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 :

Remplir REF CURSOR avec un objet "Is Table or Record"


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Remplir REF CURSOR avec un objet "Is Table or Record"
    Bonjour,

    j'utilise un paramètre REF CURSOR OUT sur une procédure stockée. Lorsque je remplit ce curseur avec une table de la base tout fonctionne mais lorsque que je veux le remplir avec un objet de type is table of record, cela ne fonctionne pas.

    Un petit exemple :

    Package body :
    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
     
    CREATE OR REPLACE PACKAGE ADM.packagecrystal
    AS
       TYPE curseurtype IS REF CURSOR;
     
       TYPE envoi IS RECORD (
          dtetlr      histo_envoi.dtetlr%TYPE,
          ptrcod      histo_envoi.ptrcod%TYPE,
          mesurej     histo_envoi.mesure%TYPE,
          mesurem     histo_envoi.mesure%TYPE,
          maxdatej    histo_envoi.dtemaj%TYPE,
          maxdatem    histo_envoi.dtemaj%TYPE,
          absenvoij   NUMBER (1),
          absenvoim   NUMBER (1)
       );
     
       TYPE tableenvoi IS TABLE OF envoi
          INDEX BY BINARY_INTEGER;
     
       PROCEDURE proceduref01e1 (
          retour   OUT   packagecrystal.curseurtype
       );
    END packagecrystal;
    /
    package :

    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
     
    CREATE OR REPLACE PACKAGE BODY adm.packagecrystal
    AS
     
       PROCEDURE proceduref01e1 (retour OUT packagecrystal.curseurtype)
       IS
       BEGIN
          DECLARE
             resultat       packagecrystal.tableenvoi;
    -------------------------
    -- Remplissage de resultat
    -------------------------
          OPEN retour FOR
               select *
               FROM resultat;  -- Ceci ne fonctionne pas
       END;
    END packagecrystal;
    /
    Ya t'il un moyen de régler ce problème?
    Merci

    Jean

  2. #2
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 50
    Points : 56
    Points
    56
    Par défaut
    Version d'oracle ? Message d'erreur ? Appel de la proc ?

    Bon sans même cela, on peut voir que vous tentez de manipuler un tableau de records dans un "from ..." Ca ne risque pas de marcher.

    Après une bonne lecture de la doc PL, le mieux à faire serait de stocker vos 2 types (en object et table) directement en base pour vous permettre de les manipuler via un "from table(...)"

    Au passage, dans votre procédure, supprimez le DECLARE et déplacez les déclarations avant le begin...

Discussions similaires

  1. Remplir un SelectOneMenu avec le contenu d'une table de base de données
    Par lanokims dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 09/09/2014, 12h02
  2. [Windows Phone 8] Remplir une listwiev avec une collection d'objets
    Par PatStan17 dans le forum Windows Phone
    Réponses: 4
    Dernier message: 10/09/2013, 14h56
  3. Remplir objet avec retour objet json
    Par steve3000 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/06/2009, 12h03
  4. [817] procédure avec REF CURSOR en paramètre
    Par Bourbigot dans le forum Oracle
    Réponses: 8
    Dernier message: 19/01/2006, 10h42
  5. [C#] Remplir une combobox avec le champs d'une table Access
    Par Damsou dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/06/2005, 15h31

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