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;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通