Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
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 24/05/2006, 12h03   #1
Débutant
 
Inscription : avril 2005
Messages : 464
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 464
Points : 69
Points : 69
Par défaut PL/SQL : retourner une liste de coloones à paertir d'un select

Bonjout,

Je dois dans une procedure sous PL/SQL Developper retourner des colonnes à partir d'un select faisant des jointures avec des tables différentes.
Je suis une peu perdu donnez moi une idée.

madina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 12h04   #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
j'ai pas du tout compris

tu pourrais donner un exemple et eventuellement montrer ce que tu as fait et pourquoi ça ne te convient pas ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 13h09   #3
Nouveau Membre du Club
 
Inscription : novembre 2005
Messages : 45
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 45
Points : 39
Points : 39
Comprends pas trop ta demande non plus ? Tu parles d'une requête dynamique et de retourner la liste des colonnes ???
goplay est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 14h11   #4
Débutant
 
Inscription : avril 2005
Messages : 464
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 464
Points : 69
Points : 69
Par défaut PL/SQL: retourner une lise de colonnes

en fait je veux trans former cette requête qui est écrit sous Sybase en PL/SQL oracle :

create procedure setprice() is
result(pal_articlename char(50),pal_parent char(50));
begin
select p.pal_articlename,
a.pal_parent from article_bom a, project_list p
where a.artcleid=b=artcleid,
end

Donc ici il parait que result() retourne le resultat de la SElect portant sur ces colonnes mentionnés dans les parenthéses.
je veux récrire ça dans PL/SQL.

madina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 14h40   #5
Nouveau Membre du Club
 
Inscription : novembre 2005
Messages : 45
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 45
Points : 39
Points : 39
Bon ben dans ce cas,

Je ne connais pas ton niveau de connaissance en PL/SQL mais en gros si tu fais un SELECT...INTO et que ton select renvoit plus d'une ligne --> tu auras une exception.
Donc dans ce cas, on boucle et on agit sur le record à chaque tour de boucle.
Si tu veux retourner le résultat, je déclarerais un curseur de type REF CURSOR qui retourne un RECORD dans la spec d'un package, et une fonction qui retournerait ce ref cursor.
Dans le code qui appel le package, il te suffit de déclarer le record de type défini dans ton package et fecther...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
DECLARE
  TYPE my_typ_record IS RECORD
  (
    les éléments de ton record
  );
 
  TYPE my_typ_ref_cursor IS REF CURSOR RETURN my_typ_record;
  l_cursor my_typ_ref_cursor;
BEGIN
  OPEN l_cursor FOR ton_select;
  RETURN l_cursor
END;
A+
goplay est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h14.


 
 
 
 
Partenaires

Hébergement Web