|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() Inscription : mars 2002 Messages : 560 ![]() |
Bonjour,
Je souhaite faire une procédure stockée qui fasse les actions suivantes : - Supprimer tout le contenu d'une table - Insérer des données selon un critère particulier - Faire un update Ma question donc, doit-on mettre toutes ces instructions dans la même procédure ? Doit-on créer une TRANSACTION ? Si oui, avez-vous des exemples de procédure utilisant des TRANSACTION ? Ma dernière problématique est de remplir la clé primaire lors de l'INSERT. Via un client TOAD, je procède un créant une séquence mais peut-on mettre toutes ces instructions dans une même procédure ? Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
c'est pas un problème SQL mais d'utilisation de TOAD... mets tout ça dans un fichier .sql et utilise SQL*Plus ce sera plus simple
|
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 319 ![]() |
Créer la séquence au début pour la supprimer à la fin ça devrait faire un malheur.
|
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() Expert Datawarehouses + BO (sur BDD Oracle et SQL Server) Inscription : mars 2003 Messages : 645 ![]() |
david71, tu peux utiliser TOAD mais tu confonds livraison, développement et exécution.
Si tu te sers des assistants de TOAD il faut d'abord créer ta séquence, puis créer ta procédure etc... Si tu veux les lancer dans un script, comme ton exemple, il faut utiliser un interpreteur de script SQL comme SQL*Plus ou un simili-SQL*Plus qui est integré à TOAD et qui interprète 90% des instructions SQL*Plus. Tu n'as pas à supprimer ta séquence ni à la recréer à chaque fois, ça serait même une erreur de faire cela car le principe même d'une séquence c'est aussi de garder la dernière valeur pour une prochaine insertion. Effectivement utiliser des transactions est une bonne idée ça permet de garder la cohérence des données mais quand tu fais une requête tu ouvres par défaut une transaction. exemple de code avec gestion du résultat de la transaction: Code :
|
||
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Inscription : mars 2002 Messages : 560 ![]() |
OK merci ce que je souhaite faire c'est donc mettre tout ce code dans une procédure stockée.
Sachant que je souhaite intégrer mes données via un INSERT avec un index auto-incrémenté. Merci pour toute information. |
|
|
00
|
|
|
#6 | ||
|
Membre habitué
![]() Inscription : mars 2002 Messages : 560 ![]() |
OK bon j'ai essayé de faire l'action suivante mais j'ai une erreur.
Ce que j'ai fait : * Fait la déclaration de "CREATE SEQUENCE maSequence1 START WITH 1 INCREMENT BY 1;" dans TOAD. * Dans la procédure stockée, j'ai le problème suivant quand je compile : ORA-00933 à l'instruction : Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com