首页 > 代码库 > Oracle基础 存储过程和游标
Oracle基础 存储过程和游标
一、带游标的存储过程
游标作为参数有两种类型:
1、声明系统游标类型 SYS_REFCURSOR
1)游标作为存储过程的参数:
--带游标的存储过程CREATE OR REPLACE PROCEDURE PRO_EMP_IN(EMP_CUR SYS_REFCURSOR) AS V_NAME EMP.ENAME%TYPE; V_SAL EMP.SAL%TYPE;BEGIN LOOP FETCH EMP_CUR INTO V_NAME, V_SAL; DBMS_OUTPUT.PUT_LINE(‘name:‘ || V_NAME || ‘ sal:‘ || V_SAL); EXIT WHEN EMP_CUR%NOTFOUND; END LOOP;END;
调用带游标的存储过程:
--调用带游标的存储过程DECLARE EMP_CUR SYS_REFCURSOR;BEGIN OPEN EMP_CUR FOR SELECT ENAME, SAL FROM EMP; PRO_EMP_IN(EMP_CUR => EMP_CUR); CLOSE EMP_CUR;END;
2)带输出游标的存储过程
--SYS_REFCURSOR 带输出参数的系统游标类型CREATE OR REPLACE PROCEDURE PRO_EMP(EMP_CUR OUT SYS_REFCURSOR) ASBEGIN OPEN EMP_CUR FOR SELECT ENAME, SAL FROM EMP E; --和查询语句绑定END;
调用带输出游标的存储过程:
--调用带输出类型的游标的存储过程DECLARE V_NAME EMP.ENAME%TYPE; V_SAL EMP.SAL%TYPE; EMP_CUR SYS_REFCURSOR; --声明系统游标类型BEGIN PRO_EMP(EMP_CUR => EMP_CUR); LOOP FETCH EMP_CUR INTO V_NAME, V_SAL; DBMS_OUTPUT.PUT_LINE(‘name:‘ || V_NAME || ‘ sal:‘ || V_SAL); EXIT WHEN EMP_CUR%NOTFOUND; END LOOP; CLOSE EMP_CUR;END;
2、声明自定义游标类型。
Oracle基础 存储过程和游标
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。