儲存過程: (stored procedure) 在大型資料庫系統中,儲存過程是一組為了完成特定功能的 sql 語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。儲存過程是資料庫中的乙個重要物件,任何乙個設計良好的資料庫應用程式都應該用到儲存過程。
建立儲存過程的語法:
create [or replace] procedure 過程名[(引數名 in/out範例:建立乙個名為hellooracle儲存過程資料型別)] as
begin
plsql 子程式體;
end;
或者create [or replace] procedure 過程名[(引數名
in/out 資料型別)] is
begin
plsql 子程式體;
end 過程名;
create呼叫儲存過程procedure hellooracle is
begin
dbms_output.put_line(
'hellooracle');
end hellooracle;
begin建立out型別的儲存過程hellooracle;
end;
--呼叫並輸出年薪計算年薪(sal*12+comm)
create
procedure my_yearsal(eno emp.empno%type,yearsal out number)is
s emp.sal
%type;
c emp.comm
%type;
begin
select sal,nvl(comm,0) into s,c from emp where empno=
eno;
yearsal :
= s*12+
c;end
my_yearsal;
drop
procedure my_yearsal
declare儲存過程和儲存函式的引數(形參)不能帶長度 比如number(10)這種n number
;begin
my_yearsal(
7369
,n);
dbms_output.put_line(n);
end;
儲存函式的返回值型別不能帶長度
自定義的變數(非形參)可以帶上長度
儲存過程沒有返回值,儲存函式可以用return 返回值
create[or replace
]function 函式名(name in type, name in
type, ...)
return 資料型別 is
結果變數 資料型別;
begin
return(結果變數);
end 函式名;
create呼叫儲存函式function empcome(eno in emp.empno%type) return
number
ispsal emp.sal
%type;
begin
select t.sal into psal from emp t where t.empno =
eno;
return psal *12;
end;
drop
function empcome;
declare當條件滿足時會自動觸發觸發器,從而執行觸發器裡面所定義的語句。觸發器不用人為的呼叫,也不能呼叫income
number
; begin
income:
=empcome(7369
); dbms_output.put_line(income);
end;
1.語句級觸發器 :在指定的操作語句操作之前或之後執行一次,不管這條語句影響了多少行
2.行級觸發器 :觸發語句作用的每一條記錄都被觸發。在行級觸發器中使用old 和new 偽記錄變數, 識別值的狀態
create建立乙個觸發器[or replace
]trigger
觸發器名
on表 名
[for each row [when(條件) ]]
begin
plsql 塊
end 觸發器名
--當往emp表中新天加一條記錄的時候,控制台會列印當插入員工時觸發
create
trigger
empinsert
after
insert
onemp
declare
begin
dbms_output.put_line(
'乙個員工被插入
');
end empinsert;
就代表觸發了觸發器
在觸發器中觸發語句與偽記錄變數的值
觸發語句
:old
:new
insert
所有欄位都是空(null)
將要插入的資料
update
更新以前該行的值
更新後的值
delete
刪除以前該行的值
所有欄位都是空(null)
Python程式設計學習整理(二)
python中的資料型別主要包括 整數 int 浮點數 float 複數 complex 字串 str 布林值 bool 空值 none 對識別符號使用type 函式即可知道識別符號代表的型別。a 7 type a 輸出 因為這些型別和c語言中的用法基本相同,所以只需注意一些不同的用法和易錯點即可。...
MSSql 與Oracle常用函式整理 二
1 在指定位置附加逗號,注意逗號不能出現於格式字串首位,並且對於小數點的數字無效 select to char 4389999.00,999,999,999 from dual 前後格式位數必須對應 4,389,999 2 按指定格式顯示小數點及小數點後位置 指定數字沒有小數的話,以0補足 sele...
oracle學習總結 二
一.自增型id 1.首先建立 sequence create sequence seqmax increment by 1 2.得到乙個id select seqmax.nextval id from dual 3.若要刪除乙個sequence drop sequence seqmax 二.刪除資料...