`
ioio
  • 浏览: 140928 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

存储过程使用游标-实例

 
阅读更多

/*
*房产税抽取
*创建时间: 2009-11-20
*创建人:李超
*/

create or replace procedure P_CS_FCS(SSSQ_Q_SK number default 20070101,
SSSQ_Z_SK number default 20070201)
as 
cursor cur_ysbnsr is
 select /*+index(ft_dj_fcdj IDX_FT_DJ_FCDJ_NSBM)*/
a.nsbm, a.nsrsbh, a.FCYZ, a.YNSEHJ,a.fcdjxh,a.NSR_ZGSWJG_DM
from ft_dj_fcdj a
where yxbz = 'Y'
and zxbz = 'N';     --所有应纳税人记录
v_nsbm number(20);  
v_nsrsbh number(20);
v_fcyz number(20,2);  
v_ynsehj number(20,2);
v_fcdjxh number(20);
v_nsrswjgdm varchar(11);
v_sysl number(20,2);  --适用税率
v_sjlx varchar2(5);   --数据类型(季度预缴数据:JD;年度合计数据:ND)
s_yjnse number(20,2);
s_pzjmse number(20,2);
s_sjjnse number(20,2);
s_yxz number(20,2);
s_yjnze_lastyear number(20,2);
begin  
 open cur_ysbnsr;  
  loop  
   fetch cur_ysbnsr into v_nsbm,v_nsrsbh,v_fcyz,v_ynsehj,v_fcdjxh,v_nsrswjgdm ;  
   --exit when cur_ysbnsr%notfound;  
   --计算指定属期内应纳税总额,批准减免税额,计算余值
   select  sum(YJNSE) ,sum(PZJMSE) ,
   sum(SJJNSE) e,sum(YXZ) 
   into s_yjnse,s_pzjmse,s_sjjnse,s_yxz
   from ft_sb_fcs t
    where  t.nsrsbh = v_nsrsbh
    and t.cqzh=v_fcdjxh
    and t.sssq_q_sk > =SSSQ_Q_SK
    and t.sssq_z_sk < =SSSQ_Z_SK;
    --查找适用税率
    select distinct nvl(sysl,0)
    into v_sysl
    from ft_sb_fcs
    where nsrsbh=v_nsrsbh
    and cqzh=v_fcdjxh
    and yxbz='Y'
    and sssq_q_sk>=SSSQ_Q_SK
    and sssq_z_sk<=SSSQ_Z_SK;
   --查找上半年应纳税总额:判断当前属期所在年度是否有记录,如果有记录,则直接查找原有记录,
   --如果没有记录,则计算
   select SNYNSE into s_yjnze_lastyear from PG_CQ_FCS t
   where SSSQ_Q_SK - t.SSSQ_Q_SK  <=1100  --是否是同一年度
   and NSRDZXH=v_nsrsbh;
   if(s_yjnze_lastyear<0) then
      --计算上一年度应缴纳金额
      --1.求上一年度时间
      --2.计算
   end if;
  
   --向表中出入数据
   insert into pg_cq_fcs(fcsbxh,
       nsrdzxh,
       nsr_swjg_dm,
       sssq_q_sk,
       sssq_z_sk,
       fcyz,
       jsyz,
       sysl,
       nynse,
       bqyj,
       bqjm,
       bqsj,
       snynse,
       sjlx)
       values
       (
       1,
       1,
       1,
       20090901,
       20091201,
       12.22,
       1.22,
       0.12,
       1111,
       22,
       11,
       22,
       33,
       22
       )
   --dbms_output.put_line('postype:'||v_nsbm||',v_fcyz:'||v_ynsehj);  
  end loop;  
  close cur_ysbnsr;  
dbms_output.put_line('---loop end---');  
 

end; 

分享到:
评论

相关推荐

    job 存储过程 视图 游标结合实例

    以上就是Oracle Job、存储过程、视图和游标在实际应用中的基本概念和结合实例,它们共同构成了数据库管理和自动化操作的重要部分。理解并熟练掌握这些工具,能显著提升数据库的管理和维护效率。

    oracle 的函数、存储过程、游标、简单实例

    本主题将深入探讨Oracle中的几个核心概念:函数、存储过程、游标以及简单的实例,这些都是数据库管理员和开发人员日常工作中不可或缺的部分。 首先,我们来了解**Oracle函数**。函数是预定义的代码块,接受零个或多...

    oracle存储过程使用游标对多表操作例子

    标题:“oracle存储过程使用游标对多表操作例子”直接指出了文章的主题是关于在Oracle环境下,如何利用存储过程和游标实现跨多个表的数据处理。描述部分重复了标题内容,强调了示例性质,表明文章将通过具体实例来...

    Oracle存储过程实例使用显示游标

    在本例中,“Oracle存储过程实例使用显示游标”着重展示了如何在存储过程中调用函数,并通过游标来处理和更新数据。 首先,我们需要了解存储过程的基本结构。一个存储过程通常包含以下部分: 1. **声明部分**:在...

    SQL游标使用例子--有注释

    ### SQL游标使用详解 #### 一、引言 在SQL编程中,游标是一种用于处理查询结果集的工具,可以实现对数据行的逐行访问。本文将通过一个具体的示例来详细介绍如何使用SQL游标,并解释其背后的原理与应用场景。 ####...

    SqlServer存储过程游标

    ### SqlServer 存储过程与游标应用实例详解 #### 一、存储过程概述 在SQL Server中,存储过程是一种预编译的SQL语句集合,它可以被当作一个单独的对象来调用。存储过程可以提高应用程序性能,简化复杂的业务逻辑,...

    oracle存储过程、游标、函数

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的编程特性,如存储过程、游标和函数,使得数据库管理和数据处理更为高效。在这个主题中,我们将深入探讨这三个关键概念及其在实际应用中的作用。 **...

    TSQL 存储过程 和 游标

    存储过程是SQL Server中的一种重要数据库对象,它是预编译的SQL语句集合,可以视为可重复使用的、有名字的批处理。它们解决了批处理语句的两个主要问题:无法传递参数和无法多次调用。存储过程允许用户通过参数传递...

    用callabledStatement调用oracle存储过程实用例子(IN OUT 传游标)

    本示例展示了如何使用 CallabledStatement 来调用 Oracle 存储过程,并实现 IN OUT 参数和游标类型参数的使用。这种方法可以提高应用程序的性能和安全性。同时,游标类型参数的使用可以实现数据的批量处理,提高应用...

    Oracle存储过程返回游标实例详解

    本文将深入探讨两种在Oracle存储过程中返回游标的实例。 首先,我们来看第一种方法,即声明系统游标。系统游标是Oracle预定义的游标,使用`sys_refcursor`作为参数类型。这种方法简单且高效,推荐使用。创建存储...

    sql server 游标实例

    ### SQL Server 游标实例详解 #### 一、游标概念与作用 在SQL Server中,游标是一种数据库对象,允许我们逐行处理查询结果集中的数据。这与普通的SQL查询不同,在普通的查询中,结果集通常是作为一个整体来处理的。...

    Oralce PLSQL存储过程之游标实践!

    通过以上实例,我们了解了在PL/SQL存储过程中使用游标的多种方式,包括简单的单值输出、遍历游标、带参数的游标以及使用多个游标进行复杂的数据处理。掌握这些技术将有助于开发出更加高效和健壮的应用程序。

    oracle游标使用及实例

    ### Oracle游标使用及实例详解 #### 一、Oracle游标概述 在Oracle数据库中,游标(Cursor)是一种用于处理SQL查询结果集的方式。它允许用户逐行地读取和处理查询结果,这对于需要对每一行数据进行特定操作的情况非常...

    mysql存储过程中使用游标的实例

    CREATE PROCEDURE getUserInfo(in date_day datetime)— — 实例— MYSQL存储过程名为:getUserInfo— 参数为:date_day日期格式:2008-03-08— BEGINdeclare _userName varchar(12); — 用户名declare _chinese int...

    数据库实例详解——图书管理系统(包括SQL代码,游标,存储过程)

    本实例将深入探讨如何构建一个完整的图书管理系统,涉及的关键知识点包括数据库的概念和逻辑结构设计,以及游标和存储过程的使用。 一、数据库概念与逻辑结构设计 1. 数据库概念:数据库是一个组织和存储数据的系统...

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

    本篇工作笔记主要介绍了达梦数据库(DAMENG DB)7版本中存储过程中的游标使用,包括for循环、IF条件判断以及其他相关操作。 首先,我们来看游标的使用。游标是一种数据库对象,它允许我们逐行处理查询结果。在存储...

    游标使用的实例,学习一点总结

    3. **从游标中获取数据**:使用 `FETCH` 语句从游标中获取数据,并将其存储到预先定义的变量中。 ```sql DECLARE @id smallint, @name nchar(10); FETCH next FROM MyCur INTO @id, @name; ``` 4. **处理数据...

    sql 游标遍历 实例

    在本实例中,我们将探讨如何使用SQL游标来遍历数据并执行相关操作。 首先,让我们理解什么是游标。游标可以视为一个指针,它在查询结果集上移动,允许你逐行访问数据。在大多数关系型数据库管理系统(如MySQL、SQL ...

    游标实例与返回结果集的存储过程

    根据提供的文件信息,我们可以深入探讨其中涉及的关键概念和实践应用,包括Oracle中的游标使用方法、存储过程的定义以及如何创建并调用返回结果集的存储过程。 ### 1. 游标的使用方法 #### 1.1 游标基本概念 在...

    游标小实例

    这个游标小实例展示了在SQL Server中如何使用游标进行复杂的数据处理和错误检测。通过游标,我们可以逐行访问数据,执行精细的逻辑判断和数据校验,这对于需要处理大量数据并进行精确控制的场景非常有用。然而,需要...

Global site tag (gtag.js) - Google Analytics