最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

oralce中存儲過程

2023-03-09 10:50 作者:阿彥絕地反擊  | 我要投稿

oralce中存儲過程【薦】

在oracle中自定義存儲過程處理業(yè)務(wù)關(guān)系,完成1個活n個較為復(fù)雜的業(yè)務(wù)功能

例如:銀行轉(zhuǎn)賬業(yè)務(wù)

1.創(chuàng)建存儲過程語法

create procedure 自定義存儲過程名稱(

????????參數(shù)名[in/out/in out] 參數(shù)類型

????????...

????????參數(shù)名[in/out/in out] 參數(shù)類型

as

...聲明區(qū)...

begin

...編輯區(qū)...

end;

單詞:procedure 過程

練習(xí):定義存儲過程完成部門注冊

drop procedure pro_sacedept;

create procedure pro_sacedept(

????????v_no dept.deptNO%type,

????????v_name dept.dName%type

????????v_loc dept.loc%type

)

as

begin

????????insert into dept(deptNO,dename,loc)values(v_no,v_name,v_loc);

????????commit;

end;

/

調(diào)用方式1:

begin????

????????pro_savedept(70,'墩部','倫敦');

end;

調(diào)用方式2:

exec pro_savedept(71,'盧部','戰(zhàn)斗');

2.存儲過程相關(guān)參數(shù)修飾符:in,out,in out

in 表示此參數(shù)是輸入?yún)?shù),只進(jìn)不出(此修飾符修飾的參數(shù),值在過程內(nèi)不可二次變,只能通過調(diào)用時的實參賦值)

out 表示此參數(shù)是輸出參數(shù),可進(jìn)可出(值可改變,并且會同期改變調(diào)用時傳遞的變量值)


練習(xí)對In修飾符號的錯誤賦值演示:

drop procedure pro01;

create procedure pro01(

? ? v_a in number

)

as

begin

? ? ? ? v_a:=666;

end;

/?

警告: 創(chuàng)建的過程帶有編譯錯誤。



此時過程創(chuàng)建具有編譯錯誤,因為v_a這個參數(shù)用in修飾過,值不可改變。


-----------------------------------------------------------------

練習(xí)in參數(shù)的正確賦值傳遞

drop procedure pro02;

create procedure pro02(

v_a in number

)

as

begin

dbms_output.put_line('過程內(nèi)a的值是:'||v_a);

end;

/


可調(diào)用時賦值:

exec pro02(10);


-----------------------------------------------------------------

練習(xí)out參數(shù)的正確傳遞


drop procedure pro03;

create procedure pro03(

v_a out number,

v_b out number

)

as

begin

v_a:=1+2;

v_b:=1-2;

end;

/


out參數(shù)的實參傳值

declare

v_x number;

v_y number;

begin

pro03(v_x,v_y);

dbms_output.put_line('x值:'||v_x);

dbms_output.put_line('y值:'||v_y);

end;


練習(xí),2個數(shù)找最大值


drop procedure pro04;

create procedure pro04(

v_a in number,

v_b in number,

v_max out number,?

v_sum out number

)

as

begin

if v_a>=v_b then

v_max:=v_a;

else

v_max:=v_b;

end if;

v_sum:=v_a+v_b;

end;


調(diào)用過程找出v_x和v_y中的最大值

declare

v_x number:=10;

v_y number:=20;

? v_max1 number:=0;

? v_sum1 number:=0;

begin

pro04(v_x,v_y,v_max1,v_sum1);

dbms_output.put_line(v_x||'與'||v_y||'中最大值是:'||v_max1);

dbms_output.put_line(v_x||'與'||v_y||'相加和是:'||v_sum1);

end;

練習(xí)存儲過程完成轉(zhuǎn)賬業(yè)務(wù)

/*利用存儲過程實現(xiàn)轉(zhuǎn)賬:貂蟬轉(zhuǎn)張飛1000塊錢...*/

insert into emp(empNo,eName,sal) values(2001,'張飛',800);

insert into emp(empNo,ename,sal) values(2002,'貂蟬',1888);

commit;?

drop procedure proSal;

create procedure proSal(

v_nameFrom emp.ename%type,

v_nameTo emp.ename%type,

v_money emp.sal%type

)

as

v_sal emp.sal%type;

begin

select sal into v_sal from emp where eName=v_nameFrom;

if v_sal > v_money then

update emp set sal=sal-v_money where ename=v_nameFrom;

update emp set sal=sal+v_money where ename=v_nameTo;

commit;

dbms_output.put_line(v_nameFrom||'向'||v_nameTo||'轉(zhuǎn)賬成功!');

else

dbms_output.put_line(v_nameFrom||'余額不足,向'||v_nameTo||'轉(zhuǎn)賬失??!');

end if;

end;


exec proSal('貂蟬','張飛',1000);


oralce中存儲過程的評論 (共 條)

分享到微博請遵守國家法律
沈阳市| 肇庆市| 康定县| 湘西| 大足县| 墨玉县| 黄浦区| 华宁县| 芜湖县| 连云港市| 邛崃市| 忻城县| 济阳县| 邵阳市| 柳州市| 玉屏| 集安市| 澎湖县| 綦江县| 临沂市| 芦山县| 耒阳市| 靖远县| 台湾省| 怀远县| 太白县| 佛山市| 台江县| 拉孜县| 花莲市| 西城区| 尼勒克县| 孟连| 成安县| 安图县| 崇礼县| 西城区| 龙泉市| 化隆| 富源县| 沁阳市|