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 :

PL/SQL nested table d'un record de plusieurs nested tables


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut PL/SQL nested table d'un record de plusieurs nested tables
    Bonjour à tous,

    je voudrais réaliser une fonction qui renvoi une table d'un record contenant lui même une liste de tables.

    problème : comment l'initialiser?

    j'ai commencé à initialiser çà :
    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
    25
    26
    27
    28
    29
    30
     
    DECLARE
    TYPE typ1 IS TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER;
    TYPE typ2 IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
    TYPE typ3 IS TABLE OF VARCHAR2(1) INDEX BY BINARY_INTEGER;
    TYPE line_typ IS RECORD (
       table1 typ1
    ,  table2 typ2
    ,  table3 typ3
    );
    TYPE list_typ IS TABLE OF line_typ;
     
       l_line_record line_typ;
       l_line      list_typ := list_typ(l_line_record);
    BEGIN
    ...
    FOR i ... LOOP
       l_line.EXTEND;
    l_line(i).table1 := typ1();
    l_line(i).table1.EXTEND;
    l_line(i).table1 := <valeur>;
    l_line(i).table2 := typ2();
    l_line(i).table2.EXTEND;
    l_line(i).table2 := <valeur>;
    l_line(i).table3 := typ3();
    l_line(i).table3.EXTEND;
    l_line(i).table3 := <valeur>;
    END LOOP;
    ...
    END;
    mais çà ne marche po! comment faire?

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Pourquoi ne faites-vous pas plutôt des tables d'enregistrements ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    DECLARE 
    TYPE line_typ IS RECORD ( 
       col1  Varchar2(20)
    ,  col2  Number
    ,  col3  Varchar2(1)
    ); 
    TYPE list_typ IS TABLE OF line_typ INDEX BY BINARY_INTEGER ; 
    Tableau  list_type
    Begin
      For i IN 1 .. 10 Loop
          Tableau(i).col1 := To_Char( i ) ;
          Tableau(i).col2 := i ;
      End loop ;
    End;
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    je dois rendre disponible l'information de la manière suivante,

    l_line(i).table1(j) et donc un record avec col1, col2, col3 ne peut pas me convenir puisque dans ce cas je devrais créer un record col1 ...coln.

Discussions similaires

  1. Nombre de record supporté par une table SQL SERVER
    Par reQQuery dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/02/2009, 13h28
  2. [SQL] - Table 1 fournit colone des donnes de table 2
    Par COlive dans le forum Langage SQL
    Réponses: 4
    Dernier message: 18/11/2005, 03h08
  3. copie d'un record vers une autre table
    Par ph4prod dans le forum Bases de données
    Réponses: 2
    Dernier message: 27/10/2005, 14h04
  4. Réponses: 7
    Dernier message: 04/07/2005, 22h39
  5. Réponses: 3
    Dernier message: 24/05/2005, 08h19

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