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 16/05/2011, 21h46   #1
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 100
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 100
Points : 30
Points : 30
Par défaut Plusieurs SELECT dans un curseur.

Je voudrais savoir si on pourrait faire plusieurs SELECT dans un curseur.

Voici mon exemple:

Code :
1
2
3
4
Cursor xxyy IS
  SELECT (SELECT SYSDATE FROM DUAL) dt,
             (SELECT SYSDATE-1 FROM DUAL)  dt1
  FROM DUAL;
Si je roule ce select dans PL/SQL Developer, ça marche très bien.
Est-ce qu'il y a des limites pour l'utilisation des curseurs avec plusieurs SELECT ?

J'ai oublié : Oracle 10g.

Merci d'avance !
dahmane2007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 09h06   #2
Membre chevronné
 
Homme O. Joly
Support
Inscription : décembre 2010
Messages : 287
Détails du profil
Informations personnelles :
Nom : Homme O. Joly
Âge : 38
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Support
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2010
Messages : 287
Points : 617
Points : 617
Bonjour,

La requête que vous donnezen exemple n'a pas besoin de plusieur SELECT dans la projection. Elle peut être facilement réécrite ainsi :

Code :
SELECT sysdate dt, sysdate-1 dt1 FROM dual;
D'autre part positionner une requête dans la projection implique que cette requête sera exécutée pour chaque ligne projetée ce qui du point de vue performances est généralement désastreux.

La question est quel est votre besoin en termes fonctionnels (et non techniques) ?

Le nombre maximal de colonnes projetées doit être de 255 (mais je n'ai pas retrouvé la référence) à priori rien n'empêche que chacune de ces colonnes soit une requête mais honnêtement si un jour un développeur me pond un truc comme ça je le crucifie en place publique ...
ojo77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 10h44   #3
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 438
Points : 10 438
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Citation:
Envoyé par ojo77 Voir le message
mais honnêtement si un jour un développeur me pond un truc comme ça je le crucifie en place publique...
Juste pour nuancer vos propos, il me semble que c'est une vieille technique d'optimisation, lorsque une application doit remplir plusieurs données de son écran afin de limiter les allers-retours avec la base de données.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 17h44   #4
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 100
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 100
Points : 30
Points : 30
Merci pour vos réponses. Je pense que vous n'avez pas compris mon besoin réel. J'utiliserai Forms 10g pour manipuler le code PLSQL et je voudrais utiliser un curseur qui est basé sur plusieurs SELECT, c'est à dire, des colonnes proviennent des SELECT.

On ne peut pas faire ça dans Forms, mais plutôt dans une procédure ou une fonction dans un package, ce que j'ai fait et ça marche très bien maintenant.

Merci encore.
dahmane2007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 17h45   #5
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 437
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 437
Points : 4 173
Points : 4 173
C'est en effet une limitation du moteur plsql de Forms qui n'est pas à jour.
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 17h48   #6
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 100
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 100
Points : 30
Points : 30
Citation:
Envoyé par McM Voir le message
C'est en effet une limitation du moteur plsql de Forms qui n'est pas à jour.
Oui tout à fait. Malheureusement Forms 10g est limité point de vue PLSQL. J'espère avec la nouvelle version 11g qui réglerait ce problème ou bien carémment switcher vers APEX 4.0.

Merci d'avance.
dahmane2007 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 13h33.


 
 
 
 
Partenaires

Hébergement Web