ORACLE下存储过程返回查询结果
2017-05-10 11:03
363 查看
/*** 存储过程名称: p_GroupScore 说明: 团队业绩统计 调用主存储过程: 手工调用 CALL p_GroupScore('E000100') 参数传递: 测试在SQL*PLUS下进行 VAR r refcursor; Exec p_GroupScore(32,'E000100',:r); print r; 原型示例 create or replace procedure p_test(p_cur out sys_refcursor) as begin open p_cur for select '001' XH,'自动化工程系' DM from DUAL UNION select '002' XH,'计算机工程系' DM from DUAL UNION select '003' XH,'机械工程系' DM from DUAL; end p_test; 测试在SQL*PLUS下进行 VAR r refcursor; Exec p_test(:r); print r; ***/ CREATE OR REPLACE PROCEDURE p_GroupScore(uISSUE NUMBER,uPID IN VARCHAR2,p_cur out sys_refcursor) AS BEGIN IF (uPID = 'E000100') THEN -- 徐桂玲团队 OPEN p_cur for SELECT FGRADE,FTYPE,SUM(FCOIN) FROM APP_DETAILS WHERE FISSUE = uISSUE AND FTYPE <> '购物币' AND FPID IN ( SELECT FCPID FROM APP_FCT WHERE FFPID = 'E888888' GROUP BY FCPID UNION SELECT 'E000100' FROM DUAL UNION SELECT 'E888888' FROM DUAL ) GROUP BY FGRADE,FTYPE UNION SELECT FGRADE,FTYPE,SUM(FCOIN) FROM APP_DETAILS WHERE FISSUE = uISSUE AND FTYPE = '店补' AND FPID IN ( SELECT FGETMID(FCPID) FROM ( SELECT FCPID FROM APP_FCT WHERE FFPID = 'E888888' GROUP BY FCPID UNION SELECT 'E000100' FROM DUAL UNION SELECT 'E888888' FROM DUAL ) ) GROUP BY FGRADE,FTYPE ORDER BY FGRADE; ELSE OPEN p_cur for SELECT FGRADE,FTYPE,SUM(FCOIN) FROM APP_DETAILS WHERE FISSUE = uISSUE AND FTYPE <> '购物币' AND FPID IN ( SELECT FCPID FROM APP_FCT WHERE FFPID = uPID GROUP BY FCPID UNION SELECT uPID FROM DUAL ) GROUP BY FGRADE,FTYPE UNION SELECT FGRADE,FTYPE,SUM(FCOIN) FROM APP_DETAILS WHERE FISSUE = uISSUE AND FTYPE = '店补' AND FPID IN ( SELECT FGETMID(FCPID) FROM ( SELECT FCPID FROM APP_FCT WHERE FFPID = uPID GROUP BY FCPID UNION SELECT uPID FROM DUAL ) ) GROUP BY FGRADE,FTYPE ORDER BY FGRADE; END IF; END p_GroupScore;
相关文章推荐
- 对存储过程返回的结果进行条件查询
- [Oracle]高效的PL/SQL程序设计(五)--调用存储过程返回结果集
- Oracle 存储过程 动态SQL 语句 返回结果集
- ORACLE - sqlplus查询oracle数据库返回结果为“?”或者乱码问题解决
- mybatis 使用oracle char 字段查询返回结果总是null
- [Oracle]高效的PL/SQL程序设计(五)--调用存储过程返回结果集
- oracle 动态拼接语句并返回查询结果集
- 用C#调用存储过程返回结果集 & 连接查询结果的union
- java jdbc调用oracle的函数或过程返回SQL语句查询的结果集
- 关于Oracle、Mysql、SQLServer中指定查询结果中返回的行数问题!
- ASP + ORACLE 存储过程 返回结果集
- 在存储过程中使用另一个存储过程返回的查询结果集
- mysql查询中实现oracle中的rownum函数的效果,返回每行查询结果的行序号
- oracle 游标 返回查询结果集
- [Oracle]高效的PL/SQL程序设计(五)--调用存储过程返回结果集
- Oracle和SQLServer分别使用函数和存储过程返回结果集
- 如何对存储过程返回的结果进行条件查询
- Oracle 函数/存储过程返回结果
- ORACLE实现存储过程返回查询结果集合的方法
- Oracle table()函数查询函数返回的结果集