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

SQL Oracle Discussion :

Problème fonction retournant type complexe.


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2005
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 42
    Points : 24
    Points
    24
    Par défaut Problème fonction retournant type complexe.
    Bonjour,
    J'ai dans une BD oracle une fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function get_num_cc(pID_U   number,
                            pID_CC  number)
        return nu_cc;
    qui retrourne un type nu_cc.
    Ce type corréspond à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     type nu_cc is record(
         DEBUT_EUR    pvmca.eurf%type,
         OCA_EUR         pvmca.eurf%type,
         PAIE_EUR       pvmca.eurf%type,
         DISPONIBLE_EUR  pvmca.eurf%type,
         MESSAGE           varchar2(256));
     vu_cc               nu_cc;
    Je voudrais pouvoir selectionner ces 5 données dans une requete SQL (afin de l'utiliser en Java...).
    Or quand je tape sous un éditeur SQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT get_num_cc(218,17777) FROM dual
    j'ai une erreur de type invalide...le select n'arrive pas à gérer ce type compliqué que me retourne la fonction.
    Comment pourrais je transformer la fonction ou faire en sorte de récuperer les 5 attributs!

    aussi j'arrive à faire marcher la fonction avec une procèdure PLSQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SET serveroutput on
    declare
      r nu_cc;
      pDeb varchar2(32);
      pOca varchar2(128);  
    begin
      r:=get_num_cc(218,17777);
      pDeb:=r.debut_eur;
      pOca:=r.oca_eur;
     
    dbms_output.put_line(pDeb||' '||pOca);
    end;
    /
    mais comment transformer ceci pour que ça fonctionne en SQL ?

    merci de votre aide

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    comment tu l'as créé le type ?

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2005
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    en fait ce type était déjà crée à mon arrivée; tout fonctionne bien en PL/SQL. Mais je dois transformer quelques fonctions en Java et utiliser un ResultSet avec un select propre au Java:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs = statement.executeQuery("SELECT ....");
    et je n'arrive pas a afficher ces attributs avec ces types complexes.

  4. #4
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    En général, le SQL pur ne permet pas de travailler directement sur des types définis en PL/SQL: le SQL ne peut travailler directement que sur un type défini en SQL.

    Dans votre cas, vous pouvez essayer d'utiliser un type objet SQL à la place d'un type record PL/SQL comme dans l'exemple suivant sur AskTom.

Discussions similaires

  1. Réponses: 10
    Dernier message: 15/04/2014, 18h49
  2. Problème fonction "Ecart type"
    Par johannj dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/09/2009, 08h54
  3. type complexe retourné par une fonction
    Par redwire dans le forum Oracle
    Réponses: 2
    Dernier message: 01/03/2009, 10h22
  4. Réponses: 5
    Dernier message: 17/01/2008, 13h18

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