Oralce的图形化界面----plsql developer涉及到的知识点总结
先截個屏展示一下plsql?developer的工程的大概界面吧
?
目前接觸的(項(xiàng)目經(jīng)理老是掛在嘴邊的:存儲過程,觸發(fā)器,別的似乎也有,但是這兩個詞出現(xiàn)的頻率不是一般的高?)
一。存儲過程(這里我把存儲函數(shù)也放在這兒,因?yàn)樘匾?#xff01;)
存儲過程的語法書寫:
create or replace procedure?存儲過程名
在這里說一下存儲過程的帶參數(shù)存儲(in,out,in out)
存儲函數(shù)的語法書寫:
create or replace function?函數(shù)名
?
1.in 傳參(簡單理解:輸入)
create or replace procedure p_name( param_name? in param_type) is
--聲明了一個調(diào)用時傳進(jìn)來的參數(shù) 和 它的類型?
?
驗(yàn)證:
create or replace procedure p_name( param_name? in number) is
begin
dbms_output.put_line(param_name);--打印param_name
param_name:=33;
end p_name;
調(diào)用此過程
declare
aaa number:=30;
begin
p_name(aaa);
dbms_output.put_line(aaa);--打印aaa
end;
結(jié)果:打印2次30
2.out 傳參(簡單理解:輸出)
create or replace procedure p_name(param_name out param_type) is
--聲明了一個調(diào)用后返回的參數(shù)和它的類型
?
驗(yàn)證:
?
create or replace procedure p_name( param_name? out number) is
begin
dbms_output.put_line(param_name);--打印param_name
param_name:=33;
end p_name;
調(diào)用此過程
declare
aaa number:=30;
begin
p_name(aaa);
dbms_output.put_line(aaa);--打印aaa
end;
結(jié)果:打印一次null ---因?yàn)閍aa 根本傳不進(jìn)去? 只是接收返回值而已
??????????? 打印一次33?? ----過程將33返回并賦值給aaa
3.in out 傳參(簡單理解:輸入輸出時)
create or replace procedure p_name(param_name in out param_type) is
--聲明了一個調(diào)用時傳進(jìn)來調(diào)用后返回的參數(shù)及類型
?
驗(yàn)證:
?
create or replace procedure p_name( param_name? in out number) is
begin
dbms_output.put_line(param_name);--打印param_name
param_name:=33;
end p_name;
調(diào)用此過程
declare
aaa number:=30;
begin
p_name(aaa);
dbms_output.put_line(aaa);--打印aaa
end;
結(jié)果:打印一次30? ---30 通過 in 傳了進(jìn)去
??????????? 打印一次33 -----33通過out 返回并賦值給aaa
?
注:參數(shù)類型也可以這樣定義? 表明.列明%type? --參數(shù)類型為表中的那個列的參數(shù)類型? 聲明參數(shù)時也可以給他賦值 如 param_name in varchar2(10):='aaa'
?
這個概念性的東西自己百度,我理解的存儲過程是sql代碼塊組成的,它的出現(xiàn)解決了現(xiàn)在的項(xiàng)目中復(fù)雜的業(yè)務(wù)邏輯難以處理的問題,
至于特點(diǎn)嗎,?有很多,先說缺點(diǎn)吧,我們大量使用的話,會給數(shù)據(jù)庫帶來巨大的壓力
調(diào)用方便,已經(jīng)編譯過了,節(jié)省時間,也就是執(zhí)行效率高,更重要的是安全性高,可維護(hù)性高
二。包以及包體(類似java中的類)
語法書寫
create or replace package?包名
在oracle數(shù)據(jù)庫中,package包如同java中package中的作用大致類似。
在oracle中,包里面可以寫存儲過程,寫方法,寫sql語句,定義一個結(jié)構(gòu)體等等。
包有包頭和包體,包頭和包體的名稱要相同
?
三。觸發(fā)器
語法書寫
create or replace triggers?觸發(fā)器名
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的Oralce的图形化界面----plsql developer涉及到的知识点总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库常用语句(日常填充)
- 下一篇: Oracle的游标