SQL>CREATEORREPLACEPROCEDURE getBnameByBid(gbid INNUMBER,gbname OUT VARCHAR2) IS
2BEGIN--OUT关键词 要导出的参数 必须用OUTT声明
3SELECT bname INTO gbname FROM bookcase WHERE bid=gbid;
4END;
5/
Procedure created
--用 PACKAGE包 保存多行多列数据
SQL>CREATEORREPLACE PACKAGE quesult AS TYPE result_cursor IS REF CURSOR;
2END quesult;
3/
Package created
SQL>CREATEORREPLACEPROCEDURE tp08(dno INNUMBER,rc OUT quesult.result_cursor) IS
2BEGIN
3OPEN rc FORSELECT*FROM empx WHERE deptno=dno;
4END;
5/
Procedure created
CREATEORREPLACEPROCEDURE queble --查询分页过程
(tame INVARCHAR2,
psize INNUMBER,
cno INNUMBER,
rcount OUT NUMBER,
pcount OUT NUMBER,
rc OUT quesult.result_cursor) IS
v_pd NUMBER(5):= psize*(cno-1)+1;
v_pu NUMBER(5):= psize*cno;
v_sql VARCHAR(500);
BEGIN
--v_sql:='SELECT * FROM (SELECT t.*,ROWNUM rn FROM (SELECT * FROM '||tame||') t WHERE ROWNUM<='||v_pu||') WHERE rn>='||v_pd;
v_sql:='SELECT * FROM '||tame||' WHERE ROWID IN (SELECT B.rid FROM (SELECT ROWNUM rn,A.rid FROM (SELECT ROWID rid FROM '||tame||') A WHERE ROWNUM<='||v_pu||') B WHERE B.rn>='||v_pd||')';