|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||
![]() ![]() ![]() Louis-Guillaume MORANDConsultant @ Microsoft Inscription : mars 2003 Messages : 10 713 ![]() |
Voici ma requête actuelle
Code :
Code :
l'avantage: meilleure visibilité, et surtout un seul bloc de code à maintenir. peut-être surtout que cela m'aidera à trouver l'origine de l'erreur "ORA-24338: statement handle not executed". je suppose que ca vient des cursor imbriqués dans un bloc IF mais je vois pas comment faire dedans. merci d'avance à celui(ceux) qui pourra(ont) m'éclairer.
__________________
moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom |
||||
|
00
|
|
|
#2 | ||||
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
pourquoi pas une vue sur :
Code :
Code :
|
||||
|
|
00
|
|
|
#3 | |
![]() ![]() ![]() Louis-Guillaume MORANDConsultant @ Microsoft Inscription : mars 2003 Messages : 10 713 ![]() |
pour la vue...bah je sais pas faire
![]() pour ta solution du statement que tu construis, j'y ai pensé mais justement, je vois pas trop la fin après Citation:
en fait, en oracle (et j'aime pas pour ca), pour l'interroger depuis du .Net, tu dois passer un curseur vide, et faire "open cur for select" et ca se retourne tout seul. pour l'erreur que tu cites, justement je ne la comprend pas, je n'ai jamais eu besoin de créer le curseur. dans des centaines d'autres sp, ca marche directement. venant du tsql, le plsql me perd un peu dans sa logique là :/ Il faudrait que j'arrive à remplir mon cursor depuis mon statement. la solution de la vue facilement la lecture du code mais j'aurais tjs mon erreur et la deuxieme solution me semble pas mal mais je vois pas comment l'utiliser :'(
__________________
moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom |
|
|
00
|
|
|
#4 | |||
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Rien de plus simple :
Citation:
Citation:
Citation:
|
|||
|
|
00
|
|
|
#5 | ||||||
![]() ![]() ![]() Louis-Guillaume MORANDConsultant @ Microsoft Inscription : mars 2003 Messages : 10 713 ![]() |
Code :
au spell il aime pas cette ligne Code :
Citation:
à la compilation, il aime pas celle là => Citation:
j'ai trouvé un open...for execute http://www.redhat.com/docs/manuals/d...l-cursors.html mais oracle n'en veut pas car ca semble être pour postgres uniquement
__________________
moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom |
||||||
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 319 ![]() |
Coller le paramètres de la procédure dans la requête comme c'est proposé ne marchéra pas!
|
|
|
00
|
|
|
#7 | |||||
![]() ![]() ![]() Louis-Guillaume MORANDConsultant @ Microsoft Inscription : mars 2003 Messages : 10 713 ![]() |
Citation:
d'ailleurs, je viens de trouver un probleme que j'ai corrigé si je fais Code :
mais si je fais Code :
Maintenant c'est à l'execution que j'ai une erreur, il te semble plus comprendre et trouver les objet paramètres p_book : invalid identifier (idem pour les autres)
__________________
moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom |
|||||
|
00
|
|
|
#8 | ||
![]() ![]() ![]() Louis-Guillaume MORANDConsultant @ Microsoft Inscription : mars 2003 Messages : 10 713 ![]() |
TADAAAAAAAAAAAAAAAAAAAAAAAAAAAAM
![]() je suis venu ici pour simlpifier une requête et le resultat est Code :
__________________
moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom |
||
|
00
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 319 ![]() |
Comme c’est écrit maintenant la procédure pose 2 grands soucis liés à la non-utilisation des variables de liaison :
Essaye d'afficher la requête que t'a construit pour voir pour quoi ça ne marche pas. |
|
|
00
|
|
|
#10 | ||
![]() ![]() ![]() Louis-Guillaume MORANDConsultant @ Microsoft Inscription : mars 2003 Messages : 10 713 ![]() |
effectivement, la construction c'est bien mais j'arrive pas à la créer comme j'ai voulu.
j'ai alors tout jeté et recommencé de zéro pas à pas. j'ai finalement trouvé une solution plus propre et facile à debugguer Code :
__________________
moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom |
||
|
00
|
|
|
#11 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 453 ![]() |
1/ C'est quoi ces espaces ?
avec un execute immediate, quand on n'est pas sur : Toujours faire un DBMS_OUTPUT.PUT_LINE de la chaine à exécuter (attention dbms_output est limité à 256 cars) A mon avis c'est 2/ BETWEEN inclue les bornes donc Code :
Code :
' AND CALL.alert_date BETWEEN p_date1 AND p_date2'
__________________
More Code : More Bugs. Less Code : Less Bugs |
||
|
|
00
|
|
|
#12 | |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Citation:
|
|
|
|
00
|
|
|
#13 |
![]() ![]() ![]() Louis-Guillaume MORANDConsultant @ Microsoft Inscription : mars 2003 Messages : 10 713 ![]() |
pourquoi?
je veux dire, par rapport à la construction d'une query-string et son execution. où se situe la perte? ca m'intéresse
__________________
moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom |
|
00
|
|
|
#14 | ||||
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Code :
Code :
|
||||
|
|
00
|
|
|
#15 | |
![]() ![]() ![]() Louis-Guillaume MORANDConsultant @ Microsoft Inscription : mars 2003 Messages : 10 713 ![]() |
bah non :/
moi je fais pas du tout Citation:
__________________
moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom |
|
|
00
|
|
|
#16 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
OR = UNION ALL, le parseur réécrit la requête comme ça... et même si une seul requête des UNION retourne des infos, il faut bien qu'Oracle les exécute toute, lui il n'en sait rien que c'est exclusif
|
|
|
00
|
|
|
#17 | |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 319 ![]() |
Citation:
La solution qu'il propose est correcte dans son cas le SQL statique c’est mieux que le SQL dynamique. |
|
|
|
00
|
|
|
#18 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Il me semble qu'on le voit dans l'explain plan mais ça a peut-être changé avec les nouvelles versions... j'avoue que je n'ai pas vérifié
|
|
|
00
|
|
|
#19 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 319 ![]() |
Bref, parfois il le fait parfois il ne le fait pas: How the CBO Transforms ORs into Compound Queries
Dans ce cas je ne pense pas qu'il le fait. |
|
|
00
|
|
|
#20 | |
|
Membre éprouvé
![]() Inscription : décembre 2007 Messages : 354 ![]() |
Citation:
__________________
Consultant et formateur Oracle |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com