/*
*房产税抽取
*创建时间: 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;
分享到:
相关推荐
以上就是Oracle Job、存储过程、视图和游标在实际应用中的基本概念和结合实例,它们共同构成了数据库管理和自动化操作的重要部分。理解并熟练掌握这些工具,能显著提升数据库的管理和维护效率。
本主题将深入探讨Oracle中的几个核心概念:函数、存储过程、游标以及简单的实例,这些都是数据库管理员和开发人员日常工作中不可或缺的部分。 首先,我们来了解**Oracle函数**。函数是预定义的代码块,接受零个或多...
标题:“oracle存储过程使用游标对多表操作例子”直接指出了文章的主题是关于在Oracle环境下,如何利用存储过程和游标实现跨多个表的数据处理。描述部分重复了标题内容,强调了示例性质,表明文章将通过具体实例来...
在本例中,“Oracle存储过程实例使用显示游标”着重展示了如何在存储过程中调用函数,并通过游标来处理和更新数据。 首先,我们需要了解存储过程的基本结构。一个存储过程通常包含以下部分: 1. **声明部分**:在...
### SQL游标使用详解 #### 一、引言 在SQL编程中,游标是一种用于处理查询结果集的工具,可以实现对数据行的逐行访问。本文将通过一个具体的示例来详细介绍如何使用SQL游标,并解释其背后的原理与应用场景。 ####...
### SqlServer 存储过程与游标应用实例详解 #### 一、存储过程概述 在SQL Server中,存储过程是一种预编译的SQL语句集合,它可以被当作一个单独的对象来调用。存储过程可以提高应用程序性能,简化复杂的业务逻辑,...
Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的编程特性,如存储过程、游标和函数,使得数据库管理和数据处理更为高效。在这个主题中,我们将深入探讨这三个关键概念及其在实际应用中的作用。 **...
存储过程是SQL Server中的一种重要数据库对象,它是预编译的SQL语句集合,可以视为可重复使用的、有名字的批处理。它们解决了批处理语句的两个主要问题:无法传递参数和无法多次调用。存储过程允许用户通过参数传递...
本示例展示了如何使用 CallabledStatement 来调用 Oracle 存储过程,并实现 IN OUT 参数和游标类型参数的使用。这种方法可以提高应用程序的性能和安全性。同时,游标类型参数的使用可以实现数据的批量处理,提高应用...
本文将深入探讨两种在Oracle存储过程中返回游标的实例。 首先,我们来看第一种方法,即声明系统游标。系统游标是Oracle预定义的游标,使用`sys_refcursor`作为参数类型。这种方法简单且高效,推荐使用。创建存储...
### SQL Server 游标实例详解 #### 一、游标概念与作用 在SQL Server中,游标是一种数据库对象,允许我们逐行处理查询结果集中的数据。这与普通的SQL查询不同,在普通的查询中,结果集通常是作为一个整体来处理的。...
通过以上实例,我们了解了在PL/SQL存储过程中使用游标的多种方式,包括简单的单值输出、遍历游标、带参数的游标以及使用多个游标进行复杂的数据处理。掌握这些技术将有助于开发出更加高效和健壮的应用程序。
### Oracle游标使用及实例详解 #### 一、Oracle游标概述 在Oracle数据库中,游标(Cursor)是一种用于处理SQL查询结果集的方式。它允许用户逐行地读取和处理查询结果,这对于需要对每一行数据进行特定操作的情况非常...
本篇工作笔记主要介绍了达梦数据库(DAMENG DB)7版本中存储过程中的游标使用,包括for循环、IF条件判断以及其他相关操作。 首先,我们来看游标的使用。游标是一种数据库对象,它允许我们逐行处理查询结果。在存储...
CREATE PROCEDURE getUserInfo(in date_day datetime)— — 实例— MYSQL存储过程名为:getUserInfo— 参数为:date_day日期格式:2008-03-08— BEGINdeclare _userName varchar(12); — 用户名declare _chinese int...
本实例将深入探讨如何构建一个完整的图书管理系统,涉及的关键知识点包括数据库的概念和逻辑结构设计,以及游标和存储过程的使用。 一、数据库概念与逻辑结构设计 1. 数据库概念:数据库是一个组织和存储数据的系统...
3. **从游标中获取数据**:使用 `FETCH` 语句从游标中获取数据,并将其存储到预先定义的变量中。 ```sql DECLARE @id smallint, @name nchar(10); FETCH next FROM MyCur INTO @id, @name; ``` 4. **处理数据...
在本实例中,我们将探讨如何使用SQL游标来遍历数据并执行相关操作。 首先,让我们理解什么是游标。游标可以视为一个指针,它在查询结果集上移动,允许你逐行访问数据。在大多数关系型数据库管理系统(如MySQL、SQL ...
根据提供的文件信息,我们可以深入探讨其中涉及的关键概念和实践应用,包括Oracle中的游标使用方法、存储过程的定义以及如何创建并调用返回结果集的存储过程。 ### 1. 游标的使用方法 #### 1.1 游标基本概念 在...
这个游标小实例展示了在SQL Server中如何使用游标进行复杂的数据处理和错误检测。通过游标,我们可以逐行访问数据,执行精细的逻辑判断和数据校验,这对于需要处理大量数据并进行精确控制的场景非常有用。然而,需要...