Oracle中返回结果集的存储过程共享
复制代码代码如下所示:
——程序返回的记录集:
进行包装--------------声明
创建包pkg_test
作为
typemyrctypeis REF CURSOR;
程序get_r(p_id数,p_rc出myrctype);——包装声明的程序命名为得到(只有界面没有内容)
最后pkg_test;
包体的发展基础上,对包的内容,包括程序得到---------------------
创建包体pkg_test
作为
程序get_r(p_id数,p_rc出myrctype)
是
sqlstr VARCHAR2(500);
开始
如果p_id = 0
打开p_rc为
选择ID,姓名,性别,地址,邮编,生日
从学生;
其他的
Sqlstr:= =
选择ID,姓名,性别,地址,邮编,生日
从学生的id是:w_id;——w_id是一个参数,
-以下p_rc是REF CURSOR游标类型,是一种型参数,返回一个recordset.using p_id是以上SQL置换的w_id价值:)
对于sqlstr使用p_id开放p_rc;
最后如果;
最终得到;
最后pkg_test;
函数返回记录集的例子,这是相同的,但返回的记录集与函数的返回值。
函数返回的记录集:
使用游标定义设置包、包和函数:
复制代码代码如下所示:
创建或替换
pkg_test作为包
myrctype是REFCURSOR类型;
功能get_r(-INtId已存在数myrctype)返回;
最后pkg_test;
/
创建或替换
包体pkg_test作为
函数体
功能get_r(-INtId已存在数)返回myrctype是
钢筋混凝土myrctype;定义ref游标变量
sqlstr VARCHAR2(500);
开始
如果-INtId已存在= 0
静态测试,直接用SELECT语句返回结果
选择ID,姓名,性别,地址,邮编开放RC,生日的学生;
其他的
动态SQL作业,使用:w_id声明的变量是从外部获得的
Sqlstr:= 'select ID,姓名,性别,地址,邮编,生日学生ID =:
动态测试,返回的结果与sqlstr字符串,并通过参数与使用关键词
对于sqlstr使用-INtId已存在开放RC;
最后如果;
返回RC;
最终得到;
最后pkg_test;