|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() Inscription : avril 2006 Messages : 465 ![]() |
Par défaut, lorsque l'on quitte SQL*Plus par un exit. Il fait un commit implicite. J'ai un lointain souvenir qui me dit qu'il est possible de remplacer ce commit par un rollback (ce qui peu etre sympa pour eviter des erreurs sur une base de prod).
Est ce que quelqu'un a une idée de comment cela se fait ? Merci, |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Je crois qu'on peut seulement forcer un ROLLBACK en cas d'erreur avec:
|
|
|
00
|
|
|
#3 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
je crains que non... ce n'est pas possible
pifor -> en effet |
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() Inscription : avril 2006 Messages : 465 ![]() |
permet de faire volontairement un rollback. Moi, je cherche a éviter de faire involontairement un COMMIT en tapant EXIT par erreur (par un malheureux reflexe trop rapide).
Je suis quasiment sur que c'est possible mais impossible de remettre la main dessus. Je vais rechercher dans mes archives..... |
|
|
00
|
|
|
#5 | |||||||||||
|
Membre actif
![]() Inscription : avril 2006 Messages : 133 ![]() |
Pour info, un petit récapitulatif qui peut être utile :
Citation:
Liste des cas où l'on "commit" automatiquement : Imaginons une table test avec 1 enregistrement : Code :
Code :
Code :
Exit = commit + fermeture sqlplus Croix = rollback + fermeture sqlplus Cas des PL/SQL : Lorsque vous réalisez des traitements en PL/SQL, faire très attention aux traitements d'erreur : Cas de commit automatique : Code :
Code :
pour cela saisir l'ordre suivant une fois connecté : Si ce paramètre est positionné à : "ON", alors tout ordre de mise à jour dans la session sera commité unitairement et automatiquement (rollback inéfficace ...) S'il est à "OFF" (position par défaut), alors cela laisse le choix de saisir "commit;" pour valider ou "rollback;" pour annuler. En résumé et pour finir : Le mécanisme de sécurité et d’intégrité basique d’Oracle fait qu’une transaction est automatiquement annulée en cas de défaillance : soit du poste client, soit du serveur, soit du réseau. (CTRL + ALT + DEL du PC client par exemple). [/FONT] |
|||||||||||
|
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
|
|
00
|
|
|
#7 | |
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 355 ![]() |
Citation:
Il n'existe aucun commit implicite par défaut au niveau de la base de données lors de la deconnexion. Si SQL*Plus commit, c'est qu'ils committent volontairement par défaut dans le code de C de SQL*PLUS lors de la déconnexion.
__________________
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
|
|
|
#8 | |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Citation:
http://download.oracle.com/docs/cd/E...w.htm#BGGBBGFI soit seulement depuis un peu plus de 3 mois sur Windows et 10 mois sur Linux. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com