-
本節(jié)以java為例來(lái)訪問(wèn)存儲(chǔ)過(guò)程,和存儲(chǔ)函數(shù)
查看全部 -
存儲(chǔ)過(guò)程11114
查看全部 -
結(jié)論:存儲(chǔ)過(guò)程完全可以取代自定義存儲(chǔ)函數(shù)
查看全部 -
包頭負(fù)責(zé)聲明,包體負(fù)責(zé)實(shí)現(xiàn)
查看全部 -
調(diào)用存儲(chǔ)函數(shù)
查看全部 -
存儲(chǔ)過(guò)程的調(diào)用
查看全部 -
存儲(chǔ)過(guò)程與存儲(chǔ)函數(shù)的具體區(qū)別和使用場(chǎng)景
查看全部 -
存儲(chǔ)函數(shù)必須有返回值
查看全部 -
帶輸入?yún)?shù)的存儲(chǔ)過(guò)程
注意:
帶參數(shù)要指明是輸入?yún)?shù)還是輸出參數(shù)(返回值)
一般不在存儲(chǔ)過(guò)程或者函數(shù)提交或者回滾事務(wù),而是交給調(diào)用者去操作事務(wù)
查看全部 -
存儲(chǔ)過(guò)程只能創(chuàng)建或者替換,不能修改,因此語(yǔ)法定義為 create [or replace]
存儲(chǔ)過(guò)程的demo和兩種調(diào)用方式
查看全部 -
除此之外,可以認(rèn)為存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)是一樣的!??!
查看全部 -
在應(yīng)用中訪問(wèn)包的存儲(chǔ)過(guò)程,需要帶上包名,(圖)查看全部
-
? ? ? ? ? ? 在out參數(shù)中使用光標(biāo),包頭包體等。
查看全部 -
? ? ? ? ? ? 用pl/sql工具如何便捷創(chuàng)建包頭?
查看全部 -
1.創(chuàng)建存儲(chǔ)過(guò)程:
create or replace procedure queryimg(pstu_id? in number,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?pstuname out varchar2,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?page? ? ?out varchar2,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?pclassid out varchar2) as
begin
select t.stuname,t.age,t.classid into pstuname,page,pclassid from zhaozy.student t where stuid = pstu_id;
end;
2.調(diào)用:
declare
? pstu_id? varchar2(256);
? pstuname varchar2(256);
? page? ? ?varchar2(256);
? pclassid varchar2(256);
begin
? pstu_id := 1;
? queryimg(pstu_id? => pstu_id,
? ? ? ? ? ?pstuname => pstuname,
? ? ? ? ? ?page? ? ?=> page,
? ? ? ? ? ?pclassid => pclassid);
? dbms_output.put_line('pstuname=' || pstuname);
? --? :pstuname := pstuname;
? dbms_output.put_line('page=' || page);
? -- :page := page;
? dbms_output.put_line('pclassid=' || pclassid);
? -- :pclassid := pclassid;
end;
3.疑問(wèn):
:page := page;這里冒號(hào)什么作用?
加上之后報(bào)錯(cuò):“ORA-01008 并非所有變量都已綁定”
如果去掉冒號(hào)就不會(huì)報(bào)錯(cuò),但是輸出結(jié)果和刪除這一句是一樣的。
查看全部 -
1.存儲(chǔ)函數(shù)格式:create or replace function 函數(shù)名(參數(shù)表)
return 函數(shù)值類(lèi)型
as
PLSQL子程序體;
2.舉例return所在位置:
調(diào)用如上存儲(chǔ)函數(shù),注意獎(jiǎng)金字段要轉(zhuǎn)為非空,否則輸出結(jié)果為空:
3.調(diào)用函數(shù):
查看全部 -
例子(建立存儲(chǔ)過(guò)程,然后用pl/sql程序調(diào)用):
---給學(xué)號(hào)加100
create or replace procedure STU(v_name in varchar) as
? p_stu_id pm_stu.stu_id%type;
begin
? select stu_id into p_stu_id from pm_stu where? stu_name= v_name;
? update pm_stu set stu_id = stu_id + 100 where stu_name = v_name;
? dbms_output.put_line('漲前:' || p_stu_id || '漲后: ' || (p_stu_id + 100));
end;
select t.*,rowid from zhaozy.pm_stu t;
BEGIN
? STU('李四');
? rollback;
? STU('張三');
? commit;
END;
查看全部 -
create or replace PROCEDURE 過(guò)程名(參數(shù)表)
as PLSQL子程序體;
as 相當(dāng)于PL/SQL程序中的declare,as不可省略,后面跟說(shuō)明部分,定義光標(biāo)變量之類(lèi)的。
?3.如何調(diào)用存儲(chǔ)過(guò)程:
create or replace PROCEDURE sayhello as
begin
? dbms_output.put_line('HELLO WORLD');
end;
? 3.1.調(diào)用存儲(chǔ)過(guò)程:
execute? sayhello;
可簡(jiǎn)寫(xiě)為 exec? sayhello;
3.2.通過(guò)PLP/SQL 程序調(diào)用
BEGIN
? sayhello();
? sayhello();
END;
查看全部
舉報(bào)