首页 > 数据库技术 > 详细

.net C# 调用 oracle 存储过程 变量使用 分页

时间:2019-09-29 00:51:31      阅读:150      评论:0      收藏:0      [点我收藏+]

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;
            

 

.net C# 调用 oracle 存储过程 变量使用 分页

原文:https://www.cnblogs.com/BinBinGo/p/11605549.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!