--回顧
--子程式(儲存過程)
--儲存過程的語法
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...