存储过程 函数写法

函数

create or replace function f_productCard( str_in in varchar2 )--分类字段
  return varchar2
is
  str_list  varchar2(4000) default null;--连接后字符串
      str  varchar2(20) default null;--连接符号

      strVar1 varchar2(40) default null ;  --订单号
      strVar2 varchar2(40) default null ;  --卡号
begin
      for x in ( select t.orderno,t.agric_card_no from v_send_product1 t where t.orderno = str_in ) loop

      if(strVar1=x.orderno and strVar2=x.agric_card_no) then
      str_list :=str_list;
      else
      str_list :=str_list||str||x.agric_card_no;
       end if ;
          str := '  |   ';
          strVar1 :=x.orderno;
          strVar2 :=x.agric_card_no ;
      end loop;
      return str_list;
end ;

存储过程

create or replace procedure pro_FarmproductRanking(v1 In  char,v2 In  char,saletime_cur Out sale_pack.sale_cur,v3  In Char) is
 Begin
 Open saletime_cur For

  select rownum as id,a."ORDER_ID",a."PRODUCTNAME",a."QUANTITY",a."FEE",null as STATICE_TIME from (
select rank() over
       ( order by sum(a.quantity) desc) order_id,--排名
       b.productname,--产品名称
       sum(a.quantity) quantity,--成交总数量
       sum(a.quantity*a.price) fee--成交总金额
from product b,--产品
order_item a,--订单详细
 sales_order c
where a.productid=b.productid(+) And  c.orderid=a.orderid and c.orderstatus=6 and  to_char(c.updatetime,'yyyymmdd')>=v1 And to_char(c.updatetime,'yyyymmdd')<=v2 And b.productname Like v3
      and b.producttypeid='11'
group by b.productname) a

Union All

select null as id,null as order_id,'合计'as productname,sum(quantity),sum(fee),null as statice_time from
(
  select rownum as id,a."ORDER_ID",a."PRODUCTNAME",a."QUANTITY",a."FEE",null as STATICE_TIME from (
select rank() over
       ( order by sum(a.quantity) desc) order_id,--排名
       b.productname,--产品名称
       sum(a.quantity) quantity,--成交总数量
       sum(a.quantity*a.price) fee--成交总金额
from order_item a,--订单详细
     product b,--产品
     sales_order c
where a.productid=b.productid(+) And c.orderid=a.orderid and c.orderstatus=6 and   to_char(c.updatetime,'yyyymmdd')>=v1 And to_char(c.updatetime,'yyyymmdd')<=v2  And b.productname Like v3
and b.producttypeid='11'
group by b.productname) a
)b;
end pro_FarmproductRanking ;

 动态REF游标声明:

CREATE OR REPLACE PACKAGE sale_pack  AS
TYPE sale_cur IS REF CURSOR;
end sale_pack;

猜你喜欢

转载自lin213-213.iteye.com/blog/1429936
今日推荐