第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

正在回答

2 回答

Oracle不像SQLServer那樣在存儲(chǔ)過(guò)程中用Select就可以返回結(jié)果集,而是通過(guò)Out型的參數(shù)進(jìn)行結(jié)果集返回的。實(shí)際上是利用REF CURSOR 代碼如下: ?
--procedure返回記錄集: ??
----------------------聲明一個(gè)Package-------------- ?
CREATE OR REPLACE PACKAGE ?pkg_test ?
AS ?
?TYPEmyrctype ?IS REF CURSOR; ? ?
? ?PROCEDURE get_r(p_id NUMBER,p_rc OUT myrctype); ? ? ?--Package中聲明名為get 的Procedure(只有接口沒(méi)內(nèi)容) ?
END pkg_test; ??
?-----------------聲明 Package Body,即上面 Package 中的內(nèi)容,包括 Procedure ?get--------------------- ??
CREATE OR REPLACE PACKAGE BODY pkg_test ?
AS ?PROCEDURE get_r(p_id NUMBER,p_rc OUT myrctype) ?
IS ? sqlstr VARCHAR2 (500); ?
BEGIN ? IF p_id = 0 THEN ?OPEN p_rc FOR ? SELECT ID, NAME, sex, address, postcode, birthday ?FROM student;?
ELSE ?sqlstr := ? 'select id,name,sex,address,postcode,birthday ?from student where id=:w_id'; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?--w_id是個(gè)參數(shù),--以下 p_rc是個(gè)REF CURSOR游標(biāo)類(lèi)型,而且是OUT型參數(shù),即可返回一個(gè)記錄集了。USING p_id就是替換上面SQL中:w_id值拉:) ??
OPEN p_rc FOR sqlstr USING p_id; ??
END IF; ?
END get; ?
END pkg_test; ?
?
??
--function返回記錄集的例子,原理和上面相同,而是用function的return值來(lái)返回記錄集。 函數(shù)返回記錄集: ? 建立帶ref cursor定義的包和包體及函數(shù): ??
代碼如下: ?
CREATE OR REPLACE ?package pkg_test as ? ?type myrctype is ref cursor; ??
function get_r(intID number) return myrctype; ?
end pkg_test; ?
/ ??
CREATE OR REPLACE ?package body pkg_test as ?--函數(shù)體 ??
function get_r(intID number) return myrctype is ?rc myrctype; --定義ref cursor變量 ?
sqlstr varchar2(500);?
?begin ? if intID=0 then ? ?--靜態(tài)測(cè)試,直接用select語(yǔ)句直接返回結(jié)果 ??
open rc for select id,name,sex,address,postcode,birthday from student;?
?else ? --動(dòng)態(tài)sql賦值,用:w_id來(lái)申明該變量從外部獲得 ??
sqlstr := 'select id,name,sex,address,postcode,birthday from student where id=:w_id'; ?--動(dòng)態(tài)測(cè)試,用sqlstr字符串返回結(jié)果,用using關(guān)鍵詞傳遞參數(shù) ?
open rc for sqlstr using intid; ?
end if; ?
return rc; ?
end get;?
?end pkg_test;??

0 回復(fù) 有任何疑惑可以回復(fù)我~

create or replace procedure p_test(p_cur out sys_refcursor)

as

begin

? ? ?open p_cur for select * from emp;

end p_test;


0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

課后思考的解答在哪

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)