oracle儲存過程和觸發器
學習分享必看:javacto.taobao.com
Oracle的Scott使用者
1、儲存過程示例:為指定的職工在原工資的基礎上長10%的工資
SQL> create or replace procedure raiseSalary(empid in number)
as
pSal emp.sal%type;
begin
select sal into pSal from emp where empno=empid;
update emp set sal = sal*1.1 where empno=empid;
dbms_output.put_line('員工號:' || empid || '漲工資前
' || psal || '漲工資後' || psal*1.1);
end;
/
Procedure created
SQL> set serveroutput on
SQL> exec raisesalary(7369);
員工號:7369漲工資前
800漲工資後880
PL/SQL procedure successfully completed
2、儲存函式示例:查詢某職工的年收入。
SQL> /**/
/*
查詢某職工的總收入
*/
create or replace function queryEmpSalary(empid in number)
return number
as
pSal number; --定義變數儲存員工的工資
pComm number; --定義變數儲存員工的獎金
begin
select sal,comm into psal,pcomm from emp where empno = empid;
return psal*12+nvl(pcomm,0);
end;
/
Function created
SQL> declare
v_sal number;
begin
v_sal:=queryEmpSalary(7934);
dbms_output.put_line('salary is:'|| v_sal);
end;
/
salary is:15600
PL/SQL procedure successfully completed
SQL> begin
dbms_output.put_line('salary is:'|| queryEmpSalary(7934));
end;
/
salary is:15600
PL/SQL procedure successfully completed
3、建立觸發器示例1:限制非工作時間向資料庫插入資料
SQL> create or replace
trigger securityEmp
before insert on emp
declare
begin
if to_char(sysdate,'day')in('星期四','星期六','星期日')
or to_number(to_char(sysdate,'hh24'))not between 8 and 18 then
raise_application_error(-20001,'不能在非工作時間插入資料。');
end if;
end;
/
Trigger created
4、建立觸發器示例2:確認資料(檢查emp表中sal 的修改值不低於原值)
SQL> create or replace trigger checkSal
before update of sal on emp
for each row
declare
begin
if :new.sal<:old.sal then
raise_application_error(-20001,'更新後的薪水比更新前小');
end if;
end;
/
Trigger created
相關文章
- 七、函式-儲存過程-觸發器函式儲存過程觸發器
- 儲存過程 檢視 觸發器 序列儲存過程觸發器
- 【MySQL】MySQL(三)儲存過程和函式、觸發器、事務MySql儲存過程函式觸發器
- 《MySQL 基礎篇》九:儲存過程、流程控制和觸發器MySql儲存過程觸發器
- 破解儲存過程,函式,檢視,觸發器解密儲存過程函式觸發器解密
- SQL Server實戰五:儲存過程與觸發器SQLServer儲存過程觸發器
- 檢視錶,儲存過程,觸發器定義的方法儲存過程觸發器
- oracle按使用者imp資料時觸發器和儲存過程匯入後無效Oracle觸發器儲存過程
- 儲存過程、觸發器與事務之間的關係儲存過程觸發器
- oracle自動生成編譯所有函式、儲存過程、觸發器的語句Oracle編譯函式儲存過程觸發器
- Oracle檢視錶、儲存過程、觸發器、函式等物件定義語句Oracle儲存過程觸發器函式物件
- Oracle儲存過程Oracle儲存過程
- Oracle認證 :Oracle中重新編譯無效的儲存過程,或函式、觸發器Oracle編譯儲存過程函式觸發器
- oracle 建立表,序列,索引,檢視,觸發器,函式,儲存過程,定時器,包體Oracle索引觸發器函式儲存過程定時器
- 檢視錶、檢視、索引、儲存過程和觸發器的定義的方法索引儲存過程觸發器
- 瞭解使用mysql 的檢視、儲存過程、觸發器、函式....MySql儲存過程觸發器函式
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- Oracle儲存過程-1Oracle儲存過程
- oracle的儲存過程Oracle儲存過程
- Oracle儲存過程例子Oracle儲存過程
- Oracle建立儲存過程Oracle儲存過程
- oracle plsql儲存過程OracleSQL儲存過程
- ORACLE 儲存過程示例Oracle儲存過程
- (interbase之九)intebase的儲存過程、觸發器以及事件、異常 (轉)儲存過程觸發器事件
- 從sybase的儲存過程轉向oracle的儲存過程儲存過程Oracle
- Oracle開發人員 JAVA儲存過程OracleJava儲存過程
- MySQL和Oracle對比之儲存過程MySqlOracle儲存過程
- 原創:oracle 儲存過程Oracle儲存過程
- oracle 儲存過程批次提交Oracle儲存過程
- oracle 儲存過程學習Oracle儲存過程
- [Flashback]Oracle flashback儲存過程Oracle儲存過程
- Oracle儲存過程學習Oracle儲存過程
- oracle的儲存過程格式Oracle儲存過程
- java 呼叫oracle 儲存過程JavaOracle儲存過程
- oracle--08儲存過程Oracle儲存過程
- Mysql 的儲存過程和儲存函式MySql儲存過程儲存函式
- 2020重新出發,MySql基礎,MySql檢視&索引&儲存過程&觸發器MySql索引儲存過程觸發器
- mysql 儲存過程和事件排程MySql儲存過程事件