zoukankan      html  css  js  c++  java
  • .net C# 调用 oracle 存储过程 变量使用 分页

    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;
                
  • 相关阅读:
    Linux下服务器开发的必要准备
    send()/ recv() 和 write()/ read()
    listen( ) accept( )
    sock( ) bind( ) connect( )
    SRCNN 卷积神经网络
    猫狗大战
    socket相关函数
    TCP详解
    【Dijkstra priority!】分层图
    树状数组
  • 原文地址:https://www.cnblogs.com/BinBinGo/p/11605549.html
Copyright © 2011-2022 走看看