用以下的sql可以查詢出當(dāng)前session中正在運行的sql信息:
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比鷹潭網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式鷹潭網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋鷹潭地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。
select
s.module,
sql_text,
sn.osuser,
sn.machine,
s.executions
from
sys.v_$sql
s,
sys.all_users
u,
v$session
sn
where
s.parsing_user_id
=
u.user_id
and
upper(u.username)
in
('username')
and
(upper(s.module)
=
'app.exe')
and
sn.sql_hash_value
=
s.hash_value
and
sn.sql_address
=
s.address
order
by
s.last_load_time
拋出異常,比如:
if new.col1 is null then
RAISE_APPLICATION_ERROR(-20001, 'col1 is null.');
end if;
Oracle的事務(wù)開始于一個DML語句。
當(dāng)以下情況發(fā)生時,事務(wù)結(jié)束:
1、COMMIT/ROLLBACK
2、執(zhí)行了DDL/DCL語句
3、客戶端主動斷開數(shù)據(jù)庫的連接(DISCONNECT)
4、數(shù)據(jù)庫關(guān)閉(宕機)
另外,一個DDL/DCL語句實際上就是一個事務(wù),其中隱含了COMMIT。
Oracle不需要特別的去指定事務(wù)的開始和結(jié)束。一個事務(wù)的結(jié)束就是下一個事務(wù)的開始。
可以創(chuàng)建這樣一個觸發(fā)器,在這個時間段內(nèi)插入數(shù)據(jù)就報錯,數(shù)據(jù)插不進去就可以了,代碼如下:
create
or
replace
trigger
aa_trigger2
before
insert
on
aa
referencing
new
as
n
old
as
o
for
each
row
when
(to_char(sysdate,'hh')
=
'22'
)
declare
begin
raise_application_error(-20009,
'該時間段內(nèi)禁止插入數(shù)據(jù)');
exception
when
others
then
raise_application_error(-20009,
'該時間段內(nèi)禁止插入數(shù)據(jù)');
end;