1 oracle 存储过程创建
create or replace procedure p_procname(i_id in integer, i_keyword in varchar2, --这里参数不需要写字符长度 i_pagenum in integer, -- in 代表的是参数是 input 方式, out 代表参数 为output . i_pagesize in integer, o_ecur out sys_refcursor) as --这里是重点,oracle是使用游标来存储查询结果的 v_begin integer; --这里变量需要写字符长度 v_end integer; --一定要带分号; begin --oracle 赋值常用方法有两种, 一种 变更名:='myname'; 一种是使用 into select ((i_pagenum - 1) * i_pagesize + 1), (i_pagenum * i_pagesize) into v_begin, v_end from dual; -- dual 是虚拟表,oracle 不可以直接使用 select ,必须和form 一起使用。 open o_ecur for --打开游标,接收查询结果集 select id, t from (select id, row_number() over(order by credate desc) n, --开窗函数,和SQL SERVER的用法一样的。 count(1) over() t --开窗函数,和SQL SERVER的用法一样的。 from tablename where id = i_id and (name like '%' || i_keyword || '%') --oracle 拼接字段串使用|| ) t where n between v_begin and v_end; end p_procname;