توضیحات
دستور commit تمام تغییرات انجام شده را ثبت میکند. هنگامی که دستور commit صادر میشود دیگر یوزرها میتوانند تغییرات اعمال شده را مشاهده کنند.
دستور
دستور commit به صورت زیر نوشته میشود:
COMMIT [ WORK ] [ COMMENT clause ] [ WRITE clause ] [ FORCE clause ];
WORK: گزینهای اختیاری است، دستور commit با work و بدون آن یک نتیجه را میدهد.
COMMENT: گزینهای اختیاری است، با این گزینه میتوان برای اجرای تراکنش پیامی را در دیتابیس ثبت کرد که این پیام در جدول DBA_2PC_PENDING ذخیره میشود به ازای شماره تراکنش.
WRITE: گزینهای اختیاری است، اولویتها را برای نوشتن اطلاعات redo در Redo log مشخص میکند. یا این دستور باید دو پارامتر مشخص شود.
Wait یا Nowait (wait به صورت دیفالت است):
Wait : اگر این گزینه انتخاب شود به این معنی است که تراکنش تا زمانی که LGWR پیغام اینکه تمام تغییرات را از Redo log buffer به online redolog file انتقال داد صبر میکند.
Nowait: تراکنش منتظر LGWR برای نشان دادن اینکه تمام تغیرات به دیسک منتقل شده است نمیماند.
Immediate یا Batch(Immediate به صورت دیفالت است):
Immediate :Log buffer پیغام میدهد به online redo log برای انتقال دادهها.
Batch: به مجموعهای از دستورات commit به صورت واحد نگاه میکند و به صورت دستهای نگاه میکند.
FORCE: گزینهای اختیاری است، که اجبار به commit کردن میکند در هر شرایطی
مثال
مثالهایی از دستور commit را مشاهده میکنیم:
COMMIT; COMMIT WORK WRITE WAIT IMMEDIATE; COMMIT COMMENT 'This is the comment for the transaction';