小强

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

oracle数据包的创建和使用

--表头
CREATE OR REPLACE PACKAGE GetPageList
AS
TYPE o_Cursor IS REF CURSOR;
PROCEDURE Get_News(pageIndex in Number,pageSize in Number,isDelu in

Number,uRowCount OUT Number,pageCount OUT Number,o_remCursor OUT o_Cursor);
end GetPageList;

--表体
CREATE OR REPLACE PACKAGE BODY GetPageList
AS
PROCEDURE Get_News(pageIndex in Number,pageSize in Number,
isDelu in Number,uRowCount OUT Number,pageCount OUT Number,o_remCursor OUT o_Cursor)
IS
BEGIN
OPEN o_remCursor FOR
SELECT NID,NTITLE,NCONTENT,NPICADDRESS,NADDTIME,NISDEL
FROM (
      SELECT A.*, ROWNUM RN FROM (SELECT * FROM News order by NID) A
      WHERE ROWNUM <= pageIndex*pageSize
  )
 WHERE RN >= (pageIndex-1)*pageSize+1 and NISDEL =isDelu;
select count(*) into uRowCount From News;
pageCount := ceil(uRowCount/pageSize);
END Get_News;
END GetPageList;


--调用数据包
declare
     R_Cursor  REPORT.o_Cursor;
begin  
     REPORT.Get_DepartmentOverview(R_Cursor);
END; 
--调用返回游标的数据包
declare
  out_info sys_refcursor;
  type typ_a_b is record (week VARCHAR2(50),rq VARCHAR2(50),sj  VARCHAR2(50),salesno  VARCHAR2(50),salesname  VARCHAR2(50),
  companyid  VARCHAR2(50),scomapnyname  VARCHAR2(50),ZT  VARCHAR2(50));
  result_temp typ_a_b;
begin
  Sales_Attendance.Get_Detail('2019-03-21','2019-04-11','11232',out_info);
loop
  fetch out_info into result_temp;
  exit when out_info%notfound;
  Dbms_output.put_line(result_temp.salesno);
end loop;
close out_info;
END;

 

posted on   搬砖狗-小强  阅读(80)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示