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 :

Créer une View avec un cursor pipelined


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 63
    Points : 32
    Points
    32
    Par défaut Créer une View avec un cursor pipelined
    Bonjour,

    Je cherche à créer une View en récupérant les informations retourner d'une function sous forme de Cursor.

    Mon code était au debut de la façon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Create Function getCursor RETURN CURSOR IS
        --Declaration
    BEGIN
           --Traitement
    END getCursor;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CREATE OR REPLACE VIEW CUSTOM_V_ERREUR_E_D AS
    SELECT getCursor() FROM dual;
    Je rencontrais une erreur ORA-2345 lors de l’exécution de la vue, puis ensuite après plusieurs recherche sur internet j'ai compris qu'il fallait déclarait un nouveau record type et de le passer en tant que cursor

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    TYPE
    type_name IS RECORD
      ( field_name1  datatype1  [NOT NULL]  [:= DEFAULT EXPRESSION],
       field_name2   datatype2   [NOT NULL]  [:= DEFAULT EXPRESSION],
       ...
       field_nameN  datatypeN  [NOT NULL]  [:= DEFAULT EXPRESSION);
    record-name  type_name;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Create Function getCursor RETURN type_name IS
        --Declaration
    BEGIN
           --Traitement
          return type_nameC;
    END getCursor;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CREATE OR REPLACE VIEW CUSTOM_V_ERREUR_E_D AS
    SELECT getCursor() FROM dual;
    Je reçois ORA-06575.

    Vous pouvez m'aider à créer la View à partir d'une fonction CURSOR s'il vous plait.

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Que voulez-vous accomplir en fait ?
    Pipelined functions in oracle 9i

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 63
    Points : 32
    Points
    32
    Par défaut
    Au faite la je viens de résoudre l'ORA que je reçois, mon but est d'afficher un ensemble de résultat dans une View, traiter dans une function.
    J'ai créer un nouveau record.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE OR REPLACE TYPE z_custom AS OBJECT (  
       id_container  INTEGER,
       container_no  VARCHAR2(18));
    J'ai declaré le type en étant refCursor
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TYPE zz_custom AS TABLE OF z_custom;
    J'ai créer la function qui retourn ce record
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    create or replace function getz return zz_custom PIPELINED as
      v_curs zz_custom;
    begin
      open v_curs for
     
        select c.container_id, c.container_no from wms_container c;
      return v_curs;
    end;
    me renvoi erreur :
    Error: PLS-00456: l'élément 'V_CURS' n'est pas un curseur

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 63
    Points : 32
    Points
    32
    Par défaut
    J'ai résolu mon problème

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 10/08/2005, 11h36
  2. Créer une vue avec des requêtes UNION ?
    Par webtheque dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/04/2005, 12h37
  3. Réponses: 4
    Dernier message: 09/02/2005, 10h44
  4. Créer une grille avec centage
    Par lil_jam63 dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 16/08/2004, 16h21
  5. [Image]Créer une image avec JAVA 1.1
    Par burno dans le forum 2D
    Réponses: 4
    Dernier message: 11/08/2004, 09h19

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