`
lin213_213
  • 浏览: 78705 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

存储过程 函数写法

 
阅读更多

函数

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;

 

分享到:
评论

相关推荐

    oracle存储过程和函数写法

    oracle 的存储过程和函数的语法 如下

    MYSQL的存储过程和函数简单写法

    【MySQL存储过程与函数简介】 MySQL的存储过程和函数是数据库管理中强大的工具,它们允许开发者将一组SQL语句组织在一起,形成一个可重用的模块,以执行复杂的业务逻辑。这种概念类似于高级编程语言(如Java)中的...

    DB2存储过程-基础教程

    SQLPL集成了SQL查询数据的便利性和传统编程语言的控制流程,使得开发者能够使用SQL语言开发复杂的程序逻辑,如函数、存储过程和触发器,从而封装业务逻辑到易于维护的数据库对象中,提升数据库应用的性能。...

    INFORMIX最新实用存储过程编写.doc

    在INFORMIX环境下,存储过程的编写涉及多个方面,包括环境配置、基本操作、数据类型、操作语句、函数以及存储过程的语法。 首先,开发Informix存储过程之前,你需要确保有一个正确的数据库实例环境,这通常意味着...

    JAVA&C#调用存储过程代码

    对于存储过程,我们通常使用CallableStatement,因为它允许我们调用数据库的存储过程和函数。 4. 使用CallableStatement的`{call}`方法设置SQL语句,格式通常为`{call procedure_name(?, ?...)}`,问号代表参数占位...

    SQL存储过程

    CREATE DEFINER=`us`@`192.168.1.9` PROCEDURE `GSP_GP_AccountBind`( IN `dwUserID` int, -- 用户 I D ...`strClientIP` varchar(15),-- 连接地址 `strMachineID` varchar(32),-- 机器标识 `strBindAccounts` varchar...

    带TOP参数的存储过程

    ### 带TOP参数的存储过程知识点解析 #### 一、概述 在SQL Server中,存储过程是一种预编译的SQL语句集合,它可以接受输入参数,并返回一个或多个结果集。存储过程不仅可以提高应用程序的性能,还可以增强数据的...

    VB.net 教程,有相关的基本函数写法,VB特点

    VB.NET中的函数和过程是代码组织的关键。函数返回一个值,而过程不返回。它们可以接受参数,执行特定任务,然后可能修改或返回结果。例如,`Math.Round`函数用于四舍五入数字,`MsgBox`过程则用于显示消息框。 **3....

    存储过程编写经验和优化措施

    《存储过程编写经验和优化措施》 存储过程是数据库开发中不可或缺的部分,尤其在处理大量数据和复杂业务逻辑时,其重要性更为突出。本文主要针对数据库开发程序员、处理大规模数据库项目以及对数据库优化感兴趣的...

    oracle存储过程学习经典[语法+实例+调用]

    **PACKAGE**是函数、存储过程、变量和SQL语句的集合体,可以提供更好的模块化编程能力。PACKAGE可以包含多个过程,这些过程可以共享同一个变量和游标。 **创建PACKAGE的语法**: ```sql CREATE [OR REPLACE] PACKAGE...

    asp生成html 函数的写法经典

    通过以上分析可以看出,这段代码主要用于自动生成HTML页面,并将其存储在服务器上。它涉及到了文件操作、字符串处理等技术点,对于理解和学习ASP开发来说具有一定的参考价值。掌握了这些技术点之后,开发者就可以...

    SQL工作笔记-达梦7存储过程中游标的使用(for循环 IF等)

    在SQL编程中,存储过程是预编译的SQL语句集合,它们被封装起来以便重复使用,提高了代码的可重用性和效率。本篇工作笔记主要介绍了达梦数据库(DAMENG DB)7版本中存储过程中的游标使用,包括for循环、IF条件判断...

    表单校验(构造函数的写法)

    在这个过程中,我们可以设置新对象的属性和方法。 在表单校验的场景下,我们可以创建一个构造函数,接受表单元素作为参数。这个构造函数内部可以包含一系列校验规则,如非空检查、格式验证等。每个表单字段可以创建...

    informix procedure&trigger写法教程

    《Informix 存储过程与触发器写法详解》 Informix 数据库系统提供了一种强大的功能,即存储过程和触发器,它们是数据库管理、数据处理和业务逻辑实现的关键部分。本文将深入探讨 Informix 中存储过程和触发器的编写...

    Mysql带返回值与不带返回值的2种存储过程写法

    MySQL存储过程是数据库编程的重要组成部分,它允许程序员封装一系列的SQL语句,形成一个可重复使用的函数或过程。存储过程可以提高数据操作的效率,并且能够更好地管理数据库逻辑。本篇文章将详细介绍两种不同类型的...

    oracle 存储过程和函数例子

    在Oracle数据库中,存储过程和函数是PL/SQL(Procedural Language/Structured Query Language)编程的重要组成部分。它们允许开发者创建可重用的代码段,提高数据库操作的效率和安全性。下面将通过给出的一些示例来...

    图文手把手教你一步步用VC 2010编写通达信缠论插件(1-DLL设计入门).pdf

    6. 结构体的定义和使用:文档提到了如何定义和使用结构体(tagPluginTCalcFuncInfo),结构体用于存储函数指针以及函数唯一标记,以实现函数的注册和调用机制。 7. 函数指针的定义和使用:文档展示了函数指针的定义...

Global site tag (gtag.js) - Google Analytics