-
Parcours d'une table/vue
Bonjour,
le sujet a probablement été traité, mais je n'ai pas trouvé de réponses.
Voici mon problème.
J'aimerais parcourir une table/vue pour en extraire chaque record 1 à 1 afin d'effectuer un traitement dessus (insert ou update d'une table tiers).
Je sèche lamentablement sur le code de la boucle de parcours de la table/vue.
Je sais qu'il est possible d'arriver à ses fins avec un curseur, mais on me déconseille fortement l'emploi de ceux-ci !8O
La base de données utilisée est Oracle 10g.
Merci pour vos réponses.
Bien à vous
-
Tu veux utiliser ces résultats pour quoi ?
Si c'est pour un site web, quel langage utilses-tu ?
Si c'est un programme, idem ?
Si c'est pour du SQL, le curseur va devenir intéressant. Pourquoi te l'a-t-on déconseillé ?
-
Quelques éléments de réponses :
1) Je dois peupler une table de mon application.
Je collecte des données de différentes tables d'une application tiers et ensuite, je compulse le tout dans ma table. Je suis dans un environnement de test, je reçois de manière régulière une copie de la DB de production. Je fais une mise à jour de la table spécifique à mon application avec soit des "inserts" ou des "updates".
Lorsque je serai en production, il est clair que j'utiliserai des triggers sur les tables.
2) Ce n'est pas pour un site Web
3) Ce n'est pas pour un language de dev, c'est pour une procédure stockée en PL/SQL.
4) On m'a déconseillé le curseur quelque soit le SGBR (Oracle/SQLServer) pour sa gourmandise et son efficacité...
-
parfois on a pas le choix non plus, il faut bien passer par un curseur.
-
+1
"A éviter" ne veut pas dire "à ne jamais utiliser"...
-
A vous lire, il n'y a pas d'astuce pour parcourir une table ou une vue sans passer par un curseur...:cry:
Que fait-on lorsque le curseur en question refuse de fonctionner ?
Vous allez me répondre à juste titre que c'est fort probablement dû à mon code !
Je ne vous jetterai pas la pierre, il s'agit fort probablement de celà. Quoi que...
A syntaxe rigoureusement exacte, j'ai des procédures qui ne fonctionne pas.
Si je change la syntaxe (il existe 2 syntaxes pour le parcours d'un curseur), celà fonctionne.
J'ai le cas actuellement avec des procédures stockées.
J'ai surtout besoin d'un code fonctionnel ou du moins avoir de l'aide pour comprendre l'origine du problème !
Je n'ai pas accès actuellement aux codes des procédures stockées, je pourrai les mettres ce soir, si vous savez déjà répondre pour la première partie du message (moyen alternatif aux curseurs), je serai rûdement content.
Bien à vous
-
ah et surtout, fait gaffe aux curseurs qui parcourent une table que tu updates pendant les itérations, ça fait souvent des trucs chelous :aie:
-
Pour les curseurs, explique-nous ce que tu veux faire exactement avec un exemple et un "modele" des tables. On verra bien...