Oracle行使存储进程返回查询游标
发布时间:2021-01-19 06:32:35 所属栏目:站长百科 来源:网络整理
导读:假如报表逻辑很是伟大的话, 可以把报表逻辑放到存储进程里,加工一个全局姑且表。 前端查询的时辰只查询姑且表即可。只是第一次查询必要忍受加工的时刻。 ? --建设存储进程,返回SYS_REFCURSOR CREATE OR REPLACE PROCEDURE P_GET_AGENT(V_AGENT_CATE IN VA
? --建设存储进程,返回SYS_REFCURSOR CREATE OR REPLACE PROCEDURE P_GET_AGENT(V_AGENT_CATE IN VARCHAR2,V_PAGE IN INTEGER,O_CURSOR OUT SYS_REFCURSOR) IS BEGIN INSERT INTO TMP_TAB_T_AGENT(AGENT_ID) SELECT AGENT_ID FROM T_AGENT TA WHERE TA.AGENT_CATE = V_AGENT_CATE; OPEN O_CURSOR FOR SELECT AGENT_ID FROM (SELECT ROWNUM AS RN,AGENT_ID FROM (SELECT AGENT_ID FROM TMP_TAB_T_AGENT ORDER BY AGENT_ID) WHERE ROWNUM < V_PAGE * 10) WHERE RN >= (V_PAGE - 1) * 10; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(‘wrong‘); END; --挪用存储进程, DECLARE V_CURSOR SYS_REFCURSOR; V_AGENT_ID T_AGENT.AGENT_ID%TYPE; BEGIN -- Call the procedure P_GET_AGENT(V_AGENT_CATE => ‘5‘,V_PAGE => 4,O_CURSOR => V_CURSOR); LOOP FETCH V_CURSOR INTO V_AGENT_ID; EXIT WHEN V_CURSOR%NOTFOUND; DBMS_OUTPUT.PUT_LINE(V_AGENT_ID); END LOOP; CLOSE V_CURSOR; COMMIT; END; (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |