|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Expert Confirmé
![]() Chef de projet en SSII Inscription : janvier 2004 Messages : 2 866 ![]() |
Bonjour,
Je travaille avec forms 6i et Oracle 8i. Mon problème est le suivant : j'ai le résultat d'une requête dynamique à visualiser sous forms. J'avais donc pensé faire une procédure dans un package du style : Code :
Le problème est lorsque que je veux associer ma procédure à mon bloc (via l'assistant de création de bloc), j'ai aucune colonne qui apparait dans la liste des colonnes disponibles, et quand j'appuie sur le bouton suivant, j'ai le message d'erreur : "Veuillez sélectionner au moins une colonne". 1. J'ai déjà utilisé les ref cursor de manière non dynamique et cela ne posait pas de problème puisque les colonnes étaient identifiées via un record. 2. Les colonnes ramenées par select sont toujours les mêmes, seule la clause where est dynamique. Au départ j'avais donc pensé déclarer mon curseur de la manière suivante : Code :
Code :
PLS-00455: cursor 'BLOCK_DATA' cannot be used IN dynamic SQL OPEN statement
__________________
Un problème sans solution est un problème mal posé Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP. |
||||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 530 ![]() |
Plutôt que de passer un curseur à votre procédure, passez plutôt une collection (table de records)
__________________
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 |
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Chef de projet en SSII Inscription : janvier 2004 Messages : 2 866 ![]() |
Il me semblait que cela n'était pas possible en forms 6i ?
__________________
Un problème sans solution est un problème mal posé Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP. |
|
|
00
|
|
|
#4 | |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 530 ![]() |
Citation:
je crois tout de même qu'elle pouvait gérer des blocs basés sur une interrogation (CLAUSE FROM) ??
__________________
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 |
|
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() ![]() Inscription : mai 2002 Messages : 257 ![]() |
Oui en Forms6i c'est tout à fait possible
|
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 530 ![]() |
Reste à savoir si le bloc est en visu seulement (OK) ou en modif (KO avec le bloc basé sur clause FROM)
Mais il ne faut pas abandonner la solution REF CURSOR ou voir si la version 6 accepte une procédure stockée qui accepte de gérer une collection.
__________________
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 |
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 530 ![]() |
Je vois dans la doc en ligne Forms6i que pour créer un bloc basé sur une procédure stockée qui utilise un REF CURSOR, il faut créer le bloc manuellement et renseigner les champs à la mano
__________________
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 |
|
|
00
|
|
|
#8 | |||||
|
Expert Confirmé
![]() Chef de projet en SSII Inscription : janvier 2004 Messages : 2 866 ![]() |
Merci pour toutes ces informations.
J'ai opté pour la clause from qui correspond en fait le mieux à mes besoins (simple visualisation), car j'ai une fonction qui me renvoie la requête à partir de paramètres, je n'ai plus qu'à faire un : Code :
Pour information, j'ai fait un test avec des collections, cela avait l'air de passer au niveau de la création du block, je n'ai pas été jusqu'à renseigner ma collection en pl, car la clause from répondait mieux à mes besoins. Citation:
Code :
Dernière question, avez-vous une idée de laquelle des 3 solutions (clause from, ref cursor, collection) est la plus performante ? Vu que la requête est assez costaud, c'est une notion à ne pas négliger...
__________________
Un problème sans solution est un problème mal posé Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP. |
|||||
|
|
00
|
|
|
#9 |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 530 ![]() |
Je pense pouvoir affirmer (pour l'avoir testé en 9i) que la clause FROM est plus performante qu'une collection. pourquoi ? personne ne peut me donner la moindre bonne raison...
__________________
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 |
|
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() Chef de projet en SSII Inscription : janvier 2004 Messages : 2 866 ![]() |
Merci Sheik pour votre sempiternelle disponibilité pour venir en aide aux développeurs en détresse...
...et pour toutes ces réponses qui m'ont permis d'avancer.
__________________
Un problème sans solution est un problème mal posé Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com