|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 25 ![]() |
Bonjour,
J'ai une requête SQL fonctionnel, notamment sous Toad, mais qui ne complile en PRO*C. J'ai déjà vu ce problème et il est lié apparament à une différence de version entre les langages SQL. Maintenant, ayant récemmennt sorti de l'école et ayant une pauvre expérience du SQL je vous avoue que je suis perdu quand on me dit de revenir à une vielle version du langage, surtout que j'ai déjà du pas mal chercher pour obtenir cette requête fonctionnel. Si vous pouvez m'aider j'en serais fortement reconnaissant. Juste me dire la technique à utiliser pour transformer la requête que voici : Code :
Code :
Albin Gilles. |
||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Executez la requête via SQL dynamique.
|
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 25 ![]() |
Merci de votre réponse mais... Qu'est ce que cela veut dire?
J'ai trouvé des méthodes de SQL dynamique sur un papier oracle mais je vois pas en quoi cela m'aiderait. Pour l'information, je transforme une requête qui utilisait un curseur pour effecter le travail mais qui prenait 50min pour insérer environ 900.000 lignes. Merci beaucoup, Albin. |
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
En Proc*C vous pouvez exécuter des sql dynamique ; ça reviens à stocker votre requête dans une variable tableau des caractères et l'exécuter via des appels dynamiques. Normalement on utilise cette méthode pour exécuter des ordres sql qui changent en fonction de diverses conditions à l’exécution du programme. Mais, dans ce cas c'est juste une astuce pour empêcher le compilateur d'analyser une requête SQL ayant une syntaxe inconnue pour lui.
La documentation d'Oracle pour le Pro*C contient des explications et des exemples assez détaillés sur le SQL dynamique. |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 25 ![]() |
D'accord, merci beaucoup pour votre réponse. Je vais essayer ça de suite!
Albin. |
|
|
00
|
|
|
#6 |
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 355 ![]() |
La requete en question ne présente rien de particuliers (comme certaines expression analytiques non supportées par PRO*C)...
C'est quoi le message d'erreur ? Car il n'y a aucune raison que la requete ne passe pas..
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
|
00
|
|
|
#7 | ||
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 25 ![]() |
Bonjour,
Voici le message d'erreur : Code :
Sinon, j'ai essayé via une méthode de SQL dynamique (la première selon la documentation d'oracle) et cela compile et s'exécute correctement. Donc un grand merci mnitu ! La requête ne fait pas exactement ce que je veux mais ca, c'est un autre problème Je passe en résolu mais si vous trouvez une solution au problème, c'est probablement mieux de pouvoir mettre la requête sans la méthode de SQL dynamique, sinon tant pis. Encore merci, Albin. |
||
|
|
00
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com