Oracle資料筆記 6 觸發器和內建程式包

2021-07-29 09:54:39 字數 2137 閱讀 4678

--回顧

--子程式(儲存過程)

--儲存過程的語法

create procedure proc_test

as--[定義區域性變數]

begin

select * from student

end;

--根據編號查詢姓名的儲存過程

create procedure proc_namebyid(myid number)

asmyname varchar(20);

begin

select s_name into myname from student where s_id = myid;

dbms_output.put_line('編號為:'||myid||'的歌手名:'||myname);

end;

--呼叫儲存過程

begin

proc_namebyid(&請輸入歌手編號);

end;

--函式(必須要有返回值)

--語法

create function fun_test

return varchar

asbegin

end;

--帶引數的函式

create function fun_sum(num1 number,num2 number)

return number

asmysum number := 0;

begin

for i in num1..num2

loop

mysum := mysum + i;

end loop;

return mysum;

end;

select fun_sum(1,100) from dual

---------------觸發器

--1、什麼是觸發器

--2、觸發器的分類

--資料庫觸發器 和 dml觸發器(insert update delete)

--3、觸發器的語法

create trigger tri_test

after

on 表名

oldnew

select * from student;

select * from exam

create trigger tri_addstu

before insert on student

for each row

begin

if :new.s_id >= 5 then

end if;

end;

insert into student values(s_id.nextval,'獅子合唱團','男',6)

--insert 觸發器

create trigger tri_addstu2

after insert on student

for each row

begin

insert into exam values(e_id.nextval,:new.s_id,'筆試',0);

insert into exam values(e_id.nextval,:new.s_id,'機試',0);

end;

--update觸發器

create trigger tri_update

after update on exam

for each row

begin

update student set s_id=:new.s_id where s_id = :old.s_id;

end;

update exam set s_id = 666 where s_id = 12;

--delete觸發器

create trigger tri_del

after delete on student

for each row

begin

delete from exam where s_id = :old.s_id;

end;

delete from student where s_name = '獅子合唱團'

oracle筆記 觸發器

1.禁止員工在休息日改變雇員資訊 create or replace trigger tri emp before insert or update or delete on emp begin if to char sysdate day nls date language american in...

oracle 觸發器筆記

什麼是觸發器 觸發器是乙個特殊的儲存過程,儲存過程和儲存函式是完成特定功能的乙個pl sql程式,觸發器也是乙個pl sql程式 觸發器的作用 每當乙個特定的資料庫操作語句 insert,update,delete 在指定的表上發出時,oracle自動地執行觸發器中定義的語句序列 觸發器的應用場景 ...

oracle筆記觸發器

pl sql觸發器知識點 行級觸發器 每更新 employees 表中的一條記錄,都會導致觸發器執行 語句級觸發器 乙個 update delete insert 語句只使觸發器執行一次 乙個helloworld級別的觸發器 create or replace trigger hello trigg...