|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Olivier Inscription : novembre 2009 Messages : 3 ![]() |
Yop yop.
J'ai un soucis. J'ai écrit une procédure qui doit supprimer certaines lignes d'une table. Pour cela j'utilise un curseur avec FOR UPDATE toussa toussa, dans le corps de ma procédure j'ai une boucle avec un fetch toussa toussa, et vient le DELETE <le_nom_de_ma_table> WHERE CURRENT OF. Pour que ça fonctionne je suppose qu'il faut mettre le commit avant la fin de la boucle, et du coup bah ça ne marche pas. Y a-t-il une autre solution que de recopier la table et de supprimer dans la copie puis de remplacer la première par la copie ? (si vous voulez du code, n'hésitez pas |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 307 ![]() |
C'est un approche peu performant. La bonne solution consiste à faire un simple delete avec les conditions qui vont bien.
La clause current off fonctionne si vous ne fait pas de commit dans la boucle (et faire commit dans la boucle n'est qu'une autre erreur dans la plupart des casses) Si vous insistez de faire commit dans la boucle vous pouvez vous en sortir en utilisant le RowID de la table (en fait current off est traduit derrière la scène par rowid). Mais tout ça ne sert à rien quand un simple delete suffit. |
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Olivier Inscription : novembre 2009 Messages : 3 ![]() |
C'était mon idée première, mais à priori ça ne m'efface pas grand chose. A moins que je n'ai oublié quelque chose quelque part.
Un simple Code :
|
||
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 307 ![]() |
Non. Vous devez écrire tout simplement
Code :
Exemple: je veux supprimer les emploies du département 10 |
||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Olivier Inscription : novembre 2009 Messages : 3 ![]() |
Ah bah tout simplement
Merci
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com