Commit اتوماتیک در اوراکل
در هنگام اجرای دستورات DDL , DCL در oracle به صورت اتوماتیک commit می گردند یعنی بعد از انجام این دستورات یک Transaction به پایان می رسد. حال وقتی شما یکی از دستورات (DML (insert,update,delete را در اوراکل انجام دهید و سپس بعد از آن یک دستور DCL یا DDL را در اوراکل انجام دهید ناخواسته عمل commit رخ می دهد.
DDL is executed logically like this:
begin
COMMIT;
do the ddl;
COMMIT;
exception
when others then
ROLLBACK;
RAISE;
end;
DDL is executed logically like this:
begin
COMMIT;
do the ddl;
COMMIT;
exception
when others then
ROLLBACK;
RAISE;
end;
برای درک بهتر با مثال بیان می کنم.
sql> conn scott/tiger
create table test(x1 int)
/
insert into test(x1) values(1)
/
insert into test(x1) values(2)
/
—DDL:
create table test2(x2 int)
/
insert into test(x1) values(3)
/
—DCL:
grant select on test to scott
/
sql> conn scott/tiger
create table test(x1 int)
/
insert into test(x1) values(1)
/
insert into test(x1) values(2)
/
—DDL:
create table test2(x2 int)
/
insert into test(x1) values(3)
/
—DCL:
grant select on test to scott
/
یک session جدید در اواراکل ایجاد کنید و قبلی را نبندید.
sql> conn scott/tiger
select * from test
result:
۱
۲
۳
select * from test
result:
۱
۲
۳
همچنین خروج عادی از SQL*Plus اوراکل بدون درخواست commit و یا rollback ، باعث commit در اوراکل می گردد. البته می توان این عمل را غیر فعال کرد.
SQL> set autocommit on
SQL> show autocommit
autocommit IMMEDIATE
SQL> set autocommit 42
SQL> show autocommit
AUTOCOMMIT ON for every 42 DML statements
SQL> set autocommit off
SQL> set autocommit on
SQL> show autocommit
autocommit IMMEDIATE
SQL> set autocommit 42
SQL> show autocommit
AUTOCOMMIT ON for every 42 DML statements
SQL> set autocommit off
نکته : هنگامی که از دستورات DDL در کدهای PL/SQL خود در اوراکل استفاده می کنید همیشه باید حواستان به کنترل DML های قبل از آن باشد.
Rate this post
جستجو
مطالب اخیر
نظرات اخیر
- مهرسا سعادت در نقشه راه اوراکل APEX برای نسخه بعدی
- سعید حسن پور در رفع مشکل Persian Date Picker برای اوراکل ایپکس(اپکس) ۲۱
- حسین ابراهیم زاده در رفع مشکل Persian Date Picker برای اوراکل ایپکس(اپکس) ۲۱
- مهدی جوینی در رفع مشکل Persian Date Picker برای اوراکل ایپکس(اپکس) ۲۱
- محمد در نصب و راه اندازی (Standalone) اوراکل APEX
بایگانی
- اردیبهشت ۱۴۰۱ (۱)
- مرداد ۱۴۰۰ (۱)
- شهریور ۱۳۹۹ (۱)
- بهمن ۱۳۹۸ (۱)
- دی ۱۳۹۸ (۶)
- آذر ۱۳۹۸ (۲۰)
- آبان ۱۳۹۸ (۱۶)
- مهر ۱۳۹۸ (۲۲)
- شهریور ۱۳۹۸ (۲)
- مرداد ۱۳۹۸ (۷)
- تیر ۱۳۹۸ (۹)
- فروردین ۱۳۹۸ (۳)
برچسبها
AOP
APEX
apexrad
captcha
CDN
constraint
ebs
epg
forms
index
injection
longtype
Materialized-view
Oracle Application Express
orclapex
performance
Persian Sort
plsql
session
sql
standalone
variable scope
XE
امنیت
اوراکل
اپکس
ایندکس
ایپکس
بنبست
بهینه ساز
تاریخ شمسی
ترجمه
ترفند
حروف فارسی
داکیومنت
داینامیک
شمسی
مرتب سازی فارسی
نصب
نکته
پلاگین
یونیک