17,377
社区成员
发帖
与我相关
我的任务
分享
create or replace Procedure p_xxxxxx
(
p_x in number,
p_x in varchar2,
p_cursor sys_refcursor;
)
Open p_cursor For
'Select * Form * Where * = * ';
End;
create or replace Procedure p_xxxxxx
(
type c is ref cursor
p_x in number,
p_x in varchar2,
p_cursor c;
)
Open p_cursor For
'Select * Form * Where * = * ';
End;
create or replace procedure sp_UpdateOrder as-- 给个例子给你:
-- 实例:Oracle存储过程返回数据集
CREATE table userinfo(id number(18,0), name varchar2(30), sex varchar2(10), age number(3,0), address varchar2(100));
insert into userinfo(id,name,sex,age,address) values(1,'luoyoumou','男',33,'湖南省衡阳市');
insert into userinfo(id,name,sex,age,address) values(2,'miaoxiaoming','男',32,'江西省吉安市');
insert into userinfo(id,name,sex,age,address) values(3,'hanqiguang','男',28,'江西省赣州市');
commit;
create table userinfo2 as select * from userinfo where 1=2;
-- i_address 是存储过程的输入参数,o_cur是存储过程的输出游标参数,用以获取返回的结果集!
CREATE OR REPLACE PROCEDURE userinfo_proc(i_address VARCHAR2, o_cur OUT SYS_REFCURSOR)
IS
sqlstr VARCHAR2(200); -- 定义变量,用以存放SQL语句
BEGIN
sqlstr := 'SELECT Id, Name, Sex, Age, Address FROM userinfo WHERE Address = :i_address'; -- 给SQL变量赋值,其中 :i_address 是绑定变量,以提高执行效率!
OPEN o_cur FOR sqlstr USING i_address; -- 给游标变量赋值
END;
/