oracle(pl/sql)包、存储过程的增、删、查、改等操作的实现(源代码)
来源:互联网 发布:美团大数据 编辑:程序博客网 时间:2024/05/17 13:07
--创建存储过程
create or replace package pkg_rights is
-- Author : Keleesy
-- Created : 2011-10-12
type ResultData is ref cursor;
--添加菜单
procedure addMenu(
p_pid rights_menu_data.pid%type,
p_name rights_menu_data.name%type,
p_layout rights_menu_data.layout%type,
p_src rights_menu_data.src%type,
p_mgrsrc rights_menu_data.mgrsrc%type,
p_mid out number
);
--更新菜单
procedure updateMenu(
p_mid rights_menu_data.mid%type,
p_pid rights_menu_data.pid%type,
p_name rights_menu_data.name%type,
p_layout rights_menu_data.layout%type,
p_del rights_menu_data.del%type,
p_release rights_menu_data.release%type,
p_src rights_menu_data.src%type,
p_mgrsrc rights_menu_data.mgrsrc%type
);
--按id(通用)查询
procedure findDataByid(entity nvarchar2,mid number,p_OutCursor out ResultData);
--(通用)根据实体名,实体id名,实体id值和del值进行删除或恢复数据
procedure delreByid(entity nvarchar2,mid number,del int);
--(通用)分页查询
procedure sp_Page(
p_PageSize int,--每页记录数
p_PageNo int, --当前页码,从 1 开始
p_SqlSelect varchar2, --查询语句,含排序部分
p_SqlCount varchar2, --获取记录总数的查询语句
p_OutRecordCount out int,--返回总记录数
p_OutCursor out ResultData
);
end pkg_rights;
/
create or replace package body pkg_rights is
--添加菜单
procedure addMenu(
p_pid rights_menu_data.pid%type,
p_name rights_menu_data.name%type,
p_layout rights_menu_data.layout%type,
p_src rights_menu_data.src%type,
p_mgrsrc rights_menu_data.mgrsrc%type,
p_mid out number
)as
begin
select rights_menu_id_seq.nextval into p_mid from dual;
insert into rights_menu_data values (p_mid,p_mid,p_pid,p_name,p_layout,p_src,p_mgrsrc,1,1);
end addMenu;
--更新菜单
procedure updateMenu(
p_mid rights_menu_data.mid%type,
p_pid rights_menu_data.pid%type,
p_name rights_menu_data.name%type,
p_layout rights_menu_data.layout%type,
p_del rights_menu_data.del%type,
p_release rights_menu_data.release%type,
p_src rights_menu_data.src%type,
p_mgrsrc rights_menu_data.mgrsrc%type
)as
begin
update rights_menu_data m set m.pid=p_pid,m.name=p_name,m.layout=p_layout,m.del=p_del,m.release=p_release,m.src=p_src,m.mgrsrc=p_mgrsrc where m.mid=p_mid;
end updateMenu;
--根据实体名,id和del值进行删除或恢复数据
procedure delreByid(entity nvarchar2,mid number,del int)is
v_sql varchar2(1000);
begin
v_sql:='update '||entity||' set del ='|| del ||'where mid ='||mid;
execute immediate v_sql;
end delreByid;
--按id通用查询
procedure findDataByid(entity nvarchar2,mid number,p_OutCursor out ResultData)as
v_sql varchar2(1000);
begin
v_sql:='select * from '||entity||' where mid = '||mid||' and del=1';
open p_OutCursor for v_sql;
end findDataByid;
--通用分页查询
procedure sp_Page(
p_PageSize int,--每页记录数
p_PageNo int, --当前页码,从 1 开始
p_SqlSelect varchar2, --查询语句,含排序部分
p_SqlCount varchar2, --获取记录总数的查询语句
p_OutRecordCount out int,--返回总记录数
p_OutCursor out ResultData
) as
v_count int;
v_heiRownum int;
v_lowRownum int;
v_sql varchar2(3000);
begin ----取记录总数
execute immediate p_SqlCount into v_count;
p_OutRecordCount := v_count; ----执行分页查询
v_heiRownum := p_PageNo * p_PageSize; --第p_PageNo页的最后一条记录
v_lowRownum := v_heiRownum - p_PageSize +1; --第p_PageNo页的第一条记录
v_sql := 'SELECT B.* FROM (SELECT A.*, rownum rn FROM ('|| p_SqlSelect ||') A ) B WHERE B.rn <= '|| v_heiRownum ||' and B.rn >= ' || v_lowRownum;
OPEN p_OutCursor FOR v_sql;
end sp_Page;
end pkg_rights;
- oracle(pl/sql)包、存储过程的增、删、查、改等操作的实现(源代码)
- oracle存储过程详解--游标 实现增、删、改、查的(2)
- oracle存储过程详解--游标 实现增、删、改、查的(1)
- 使用wrap和unwrap加密解密Oracle的PL/SQL对象(包,存储过程,函数等)代码
- 使用wrap和unwrap加密解密Oracle的PL/SQL对象(包,存储过程,函数等)代码
- java调用存储过程进行增、删、查、改操作(源代码)
- Oracle PL/SQL存储过程,函数,包,触发器的使用
- Oracle PL/SQL存储过程,函数,包,触发器的使用
- oracle存储过程详解--游标 实现增、删、改、查的功能
- 存储过程实现基本的增删查改(二)
- 存储过程实现基本的增删查改(二)
- oracle pl/sql存储过程的调试(debug)
- 学习下oracle的存储过程增删改查操作以及java调用存储过程
- 用Oracle的增、删、改、查实现对DVD的操作(迷你DVD)
- Oracle PL/SQL的存储过程
- oracle 存储过程实现增删改查
- 109---oracle的oracle的PL/SQL,异常处理, 游标(CURSOR), 子程序,存储过程
- 可重复使用的存储过程(增,删,改,查,分页)
- 现实世界的Windows Azure:采访IDV解决方案的副总经理Scott Caulk
- ps用到的一些操作
- Squid
- socket编程中的memset函数的作用是什么
- 多分享,成就多彩人生
- oracle(pl/sql)包、存储过程的增、删、查、改等操作的实现(源代码)
- C Socket Programming for Linux with a Server and Client Example Code
- 使用高版本的SDK后再导入以前用低版本的project时,会遇到一些兼容性的问题。
- vs2010中臃肿的ipch和sdf文件
- Spring中TransactionTemplate 简单灵活的事务配置及使用
- 研究显示云计算减少了管理安全性的时间和费用
- Erlang并发编程(二) --- Web服务
- ISE中的Verilog Test Fixture类型的.v文件为啥在Implementation中显示?如何修改?
- Android.mk学习笔记