函数
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 的存储过程和函数的语法 如下
【MySQL存储过程与函数简介】 MySQL的存储过程和函数是数据库管理中强大的工具,它们允许开发者将一组SQL语句组织在一起,形成一个可重用的模块,以执行复杂的业务逻辑。这种概念类似于高级编程语言(如Java)中的...
SQLPL集成了SQL查询数据的便利性和传统编程语言的控制流程,使得开发者能够使用SQL语言开发复杂的程序逻辑,如函数、存储过程和触发器,从而封装业务逻辑到易于维护的数据库对象中,提升数据库应用的性能。...
在INFORMIX环境下,存储过程的编写涉及多个方面,包括环境配置、基本操作、数据类型、操作语句、函数以及存储过程的语法。 首先,开发Informix存储过程之前,你需要确保有一个正确的数据库实例环境,这通常意味着...
对于存储过程,我们通常使用CallableStatement,因为它允许我们调用数据库的存储过程和函数。 4. 使用CallableStatement的`{call}`方法设置SQL语句,格式通常为`{call procedure_name(?, ?...)}`,问号代表参数占位...
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参数的存储过程知识点解析 #### 一、概述 在SQL Server中,存储过程是一种预编译的SQL语句集合,它可以接受输入参数,并返回一个或多个结果集。存储过程不仅可以提高应用程序的性能,还可以增强数据的...
VB.NET中的函数和过程是代码组织的关键。函数返回一个值,而过程不返回。它们可以接受参数,执行特定任务,然后可能修改或返回结果。例如,`Math.Round`函数用于四舍五入数字,`MsgBox`过程则用于显示消息框。 **3....
《存储过程编写经验和优化措施》 存储过程是数据库开发中不可或缺的部分,尤其在处理大量数据和复杂业务逻辑时,其重要性更为突出。本文主要针对数据库开发程序员、处理大规模数据库项目以及对数据库优化感兴趣的...
**PACKAGE**是函数、存储过程、变量和SQL语句的集合体,可以提供更好的模块化编程能力。PACKAGE可以包含多个过程,这些过程可以共享同一个变量和游标。 **创建PACKAGE的语法**: ```sql CREATE [OR REPLACE] PACKAGE...
通过以上分析可以看出,这段代码主要用于自动生成HTML页面,并将其存储在服务器上。它涉及到了文件操作、字符串处理等技术点,对于理解和学习ASP开发来说具有一定的参考价值。掌握了这些技术点之后,开发者就可以...
在SQL编程中,存储过程是预编译的SQL语句集合,它们被封装起来以便重复使用,提高了代码的可重用性和效率。本篇工作笔记主要介绍了达梦数据库(DAMENG DB)7版本中存储过程中的游标使用,包括for循环、IF条件判断...
在这个过程中,我们可以设置新对象的属性和方法。 在表单校验的场景下,我们可以创建一个构造函数,接受表单元素作为参数。这个构造函数内部可以包含一系列校验规则,如非空检查、格式验证等。每个表单字段可以创建...
《Informix 存储过程与触发器写法详解》 Informix 数据库系统提供了一种强大的功能,即存储过程和触发器,它们是数据库管理、数据处理和业务逻辑实现的关键部分。本文将深入探讨 Informix 中存储过程和触发器的编写...
MySQL存储过程是数据库编程的重要组成部分,它允许程序员封装一系列的SQL语句,形成一个可重复使用的函数或过程。存储过程可以提高数据操作的效率,并且能够更好地管理数据库逻辑。本篇文章将详细介绍两种不同类型的...
在Oracle数据库中,存储过程和函数是PL/SQL(Procedural Language/Structured Query Language)编程的重要组成部分。它们允许开发者创建可重用的代码段,提高数据库操作的效率和安全性。下面将通过给出的一些示例来...
6. 结构体的定义和使用:文档提到了如何定义和使用结构体(tagPluginTCalcFuncInfo),结构体用于存储函数指针以及函数唯一标记,以实现函数的注册和调用机制。 7. 函数指针的定义和使用:文档展示了函数指针的定义...