`
lin213_213
  • 浏览: 76458 次
  • 性别: 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的存储过程和函数简单写法

    什么是存储过程 简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法; ps:存储过程跟触发器有点类似,都是一组SQL集,但是存储过程是主动调用的,且功能比触发器更加...

    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...

    DB2存储过程-基础教程

    在本教程中,您学习了用于编写过程、用户定义函数和触发器的SQL Procedural Language。您学习了SQL Procedure Language 的所有基本要素,包括变量声明和赋值、语法和使用以及用于控制过程逻辑的流程的条件语句和迭代...

    存储过程的安全及性能优化

    存储过程的安全及性能优化 存储过程分类  系统存储过程  自定义存储过程  SQL Server使用者编写的存储过程  扩展存储过程  动态链接库(DLL)函数的调用看,主要用于客户端和服务器端之间进行通信  exec...

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

    如下存储过程使用游标遍历所有数据: CREATE OR REPLACE PROCEDURE "CFFTEST"."SELECT_STUDENT"("id" IN INT) AS myId int; myName varchar(50); cursor myCursor is select id, name from cfftest.student; ...

    Oracle-SQL基础到存储过程下载(第二阶段)

    014.sql高级查询_去重...029.sql函数_字符函数.mp4 030.sql函数_数字函数.mp4 031.sql函数_日期函数.mp4 032.sql函数_转换函数.mp4 033.sql函数_其它函数.mp4 034.sql函数_exists的用法.mp4 035.sql函数_decode与

    MySQL 存储过程传参数实现where id in(1,2,3,…)示例

    当在写存储过程in里面的列表用个传入参数代入的时候,就需要用到如下方式: 主要用到find_in_set函数 代码如下: select * from table_name t where find_in_set(t.field1,’1,2,3,4′); 当然还可以比较笨实的方法,...

    JavaScript类的写法

    早期的javascript需求都很简单,基本都是写成函数的,然后是面向过程的写法,后来慢慢的引入面向对象开发思想,再后来就慢慢写成类。 在js中,写成类的本质基本都是 构造函数+原型。下面,就讨论一下js类的几种写法...

    sql总结.doc

    ·存储过程的基本写法 ·存储过程的作用 ·存储过程的优缺点 ·存储过程的应用场景 3、触发器 ·什么是触发器 ·触发器的的基本写法 ·触发器的功能 ·触发器的优缺点 ·触发器的两种形式 ·触发器的应用场景 4、...

    ASP.NET Entity Framework(EF)中基本增删改查的各种写法和详细说明

    在以前学习和使用WinForm、ASP.NET WebForm、三层架构的时候,对于数据访问的实现,无论是什么逻辑,简单还是复杂,无论是执行SQL语句还是调用存储过程都要用到ADO.NET技术,通过封装好的SQLhelper类传入SQL语句和Sql...

    Oracle中触发器示例详解

    触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来启动运行。即触发器是当某个事件发生时自动地隐式运行。并且,触发器不能接收参数。...

    oracle sql 学习示例

    一些学习sql语句的例句。包括存储过程、游标、自定义函数等各种高难度sql语句写法。

    C语言程序设计标准教程

    2. C语言的函数兼有其它语言中的函数和过程两种功能,从这个角度看,又可把函数分为有返回值函数和无返回值函数两种。 (1)有返回值函数  此类函数被调用执行完后将向调用者返回一个执行结果, 称为函数返回值。如...

    sqlserver 实体类代码生成器,自己做的

    我的学习书籍(3把sql书籍,基础,高级,权限),存储过程的5种用法,兼容wpf更改通知实体模型,含数据库连接工具(目前在本机中连接远程上的服务器会无效),但是连接字符串对,还是可以连接数据库的,目前一次性导出...

    Oracle数据库、SQL

    1.1表是数据库中存储数据的基本单位 1 1.2数据库标准语言 1 1.3数据库(DB) 1 1.4数据库种类 1 1.5数据库中如何定义表 1 1.6 create database dbname的含义 1 1.7安装DBMS 1 1.8宏观上是数据--&gt;database 1 1.9远程...

    通用的数据库迁移适配方法及系统的制作方法.pdf

    随着国家对安全的重视,一些涉及重要信息的核心应用必须做到安全可信,因此涉及好多的关键应用业务从传统的X86架构向国产化、安全可靠 在数据库的迁移适配过程中经常会遇到不同数据库写法不同,支持的函数不同,在...

    oracle学习日志总结

    1. 采用共享sql(带占位符或者参数sql). 2. 使用表别名. 3. 尽量避免反复访问同一张表或者几张表,尤其是数据量大的表可考虑提取数据到临时表,然后做链接. ...注意存储过程中参数和数据类型的关系 。

    数据结构单链表的实验报告代码头文件

    基础的数据结构知识和一些函数的基本写法,单链表一些功能的实现 阅读建议:自己实际去操作一下,不懂不会的可以参考本代码,此资源以开发简化版不仅是代码编写实现也更注重内容上的需求分析和方案设计,所以在学习...

Global site tag (gtag.js) - Google Analytics