Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/02/2008, 16h28   #1
Membre Expert
 
Avatar de Lung
 
Analyste-programmeur
Inscription : mai 2002
Messages : 2 046
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Yonne (Bourgogne)

Informations professionnelles :
Activité : Analyste-programmeur
Secteur : Industrie

Informations forums :
Inscription : mai 2002
Messages : 2 046
Points : 2 046
Points : 2 046
Par défaut [10g] Variable ROWTYPE en résultat d'un curseur dynamique

Est-il possible d'utiliser une variable ROWTYPE en résultat d'un curseur dynamique ?

Voici un bout de code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
   type TCurRecherche IS ref cursor;
   type T_CONTENANT IS TABLE of CONTENANT%ROWTYPE;      // <----- ICI les ROWTYPE
   type T_COMPO_CONTENANT IS TABLE of COMPO_CONTENANT%ROWTYPE;
 
   ReqRecherche         VARCHAR2(4096);
   CurRecherche         TCurRecherche;
   ChampsContenant      T_CONTENANT;
   ChampsCompoContenant T_COMPO_CONTENANT;
 
begin
   -- Recherche des contenants.
   ReqRecherche := 'select * from CONTENANT, COMPO_CONTENANT ';
   ReqRecherche := ReqRecherche || 'where NUMERO_EMPLACEMENT in (' || ListeEmp || ') ';
   ReqRecherche := ReqRecherche || 'and CONTENANT.CODE_CONTENANT = COMPO_CONTENANT.CODE_CONTENANT';
   begin
      open CurRecherche FOR ReqRecherche;
      loop
         fetch CurRecherche INTO ChampsContenant, ChampsCompoContenant;   // <--- ICI, l'utilisation de ces variables ROWTYPE.
         exit when CurRecherche%NOTFOUND;
En gros, je voudrais que mon select me renvoie tous les champs de mes deux tables. Et comme je n'ai pas envie de créer autant de variables que de champs (il y en a un certain nombre ), je pensais utiliser des variables ROWTYPE.

C'est possible ?
Sinon, existe t'il une autre façon de faire ?

__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.
______________________________________________________________________________________________

Delphi 6#2 Entreprise - Delphi 2010 Architecte - Delphi XE2 Entreprise
Win XP Pro - OpenGL 2.1 - Oracle 11g - Firebird 2.5.0.2
Écrivez dans un français correct !!
Lung est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 16h30   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Citation:
Envoyé par Lung Voir le message
C'est possible ?
Sinon, existe t'il une autre façon de faire ?
Non et non... le copier/coller et ton ami
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 16h43   #3
Membre Expert
 
Avatar de Lung
 
Analyste-programmeur
Inscription : mai 2002
Messages : 2 046
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Yonne (Bourgogne)

Informations professionnelles :
Activité : Analyste-programmeur
Secteur : Industrie

Informations forums :
Inscription : mai 2002
Messages : 2 046
Points : 2 046
Points : 2 046


Bon, bin, j'ai plus qu'à aller me pendre, ou expliquer à l'utilisateur comment s'en passer.

Merci.
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.
______________________________________________________________________________________________

Delphi 6#2 Entreprise - Delphi 2010 Architecte - Delphi XE2 Entreprise
Win XP Pro - OpenGL 2.1 - Oracle 11g - Firebird 2.5.0.2
Écrivez dans un français correct !!
Lung est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h25.


 
 
 
 
Partenaires

Hébergement Web