|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : mars 2007 Messages : 248 ![]() |
Bonjour
Contexte: écriture des procédures stockées en T-SQL. Est-il possible de définir une variable de type enregistrement (row) d'une table pour faciliter l'écriture des fetch des curseurs ? J'aimerais pouvoir faire: Code :
Ceci me permettrait de simplifier les écritures de mes procédures. Ne l'ayant pas trouvé dans la doc, je me permets de vous demander si c'est vraiment impossible. Merci msomso |
||
|
|
00
|
|
|
#2 |
![]() ![]() |
Non, ce type de syntaxe n'est pas supportée.
Il faut déclarer séparément chaque variable qui sera utilisée dans un FETCH. Ceci étant - si c'est possible il est préférable d'éviter l'utilisation de curseur et plutôt faire des opérations ensemblistes, même si c'est parfois plus difficile à appréhender au départ qu'une approche procédurale... Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : mars 2007 Messages : 248 ![]() |
Bonjour,
J'aimerais bien les éviter moi aussi, ces écritures pénibles des curseurs. Il s'agît de copier (migrer) les données de quelque tables d'une base vers une autre (sur le même serveur). L'insertion sur la base cible se fait en ajout et non remplacement. De plus on doit détecter/tracer des lignes en erreur d'intégrité. Alors, comment faire sans curseur (comment gérer la fin de boucle de la lecture ) ? Le volume est important (centaines des milliers de lignes) et je voudrais fournir des statistiques sur ce qui est "passé" ou pas en raison des triggers volontairement laissés actifs ( je sais que ce n'est pas performant). J'affiche notamment les données des lignes qui ne passent pas pour faciliter la correction. Je ne pense pas pouvoir contourner les curseurs, non ? Merci d'avance pour vos avis msomso |
|
|
00
|
|
|
#4 |
![]() ![]() |
Effectivement, si il s'agit d'une opération unitaire alors l'utilisation d'un curseur semble la meilleur solution. Il y a probablement d'autres téchniques, mais je ne vois rien de "simple" qui réponde aux besoins.
Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : mars 2007 Messages : 248 ![]() |
Merci
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com