- 浏览: 254558 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (232)
- 瞎扯两句 (8)
- 操作系统 (5)
- 工作笔记 (33)
- 设计模式 (1)
- java (57)
- Java IDE (7)
- hibernate (17)
- oracle (46)
- ms sql (2)
- spring (9)
- struts2 (0)
- javascript (16)
- java_code (2)
- java之集合 (2)
- java之线程 (4)
- java之IO (4)
- java之虚拟机 (6)
- java之异常 (0)
- EJB (4)
- XML (4)
- 数据结构-算法 (2)
- 架构设计 (5)
- 配置信息 (2)
- 阅读笔记 (6)
- IT专业英语 (1)
- PI (0)
- 单元测试 (1)
最新评论
create or replace
PROCEDURE misr016_RepaymentPlanSummary IS
/******************************************************************************
NAME: misr016_RepaymentPlanSummary
PURPOSE:
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2006-3-21 lulineng 1. Created this procedure.
NOTES:
only insert increment
insert all tpa records
then update the paid amount by caculating the CT transactions from PPR
******************************************************************************/
TYPE TPA IS RECORD(
ID TMR016_REPAYMENTPLANSUMMARY.ID%TYPE,
FREQ TT05_TPA.CT05_INST_FREQ%TYPE,
INST TT05_TPA.CT05_NR_INST%TYPE,
FIN TT05_TPA.CR12_ACCOUNTS_NUMBER%TYPE,
TAXYEAR TT05_TPA.CT05_TAX_YEAR%TYPE,
PRDFROM TT05_TPA.CT05_PRD_FROM%TYPE,
PRDTO TT05_TPA.CT05_PRD_TO%TYPE
);
v_tpa TPA;
TYPE vCurType IS REF CURSOR;
vSQL VARCHAR2(1000);
vPick vCurType;
v_Month NUMBER(10,2);
v_PaidAMT NUMBER(19,2);
BEGIN
--insert new tpa
insert into tmr016_repaymentplansummary
(id,
cs05_office_id,
cg02_tax_type,
debt_amount,
create_date,
tpa_no)
select mis_sequence.nextval,
b.cs05_office_id,
b.cg02_tax_type,
a.ct05_tpa_amt,
a.ct05_create_date,
a.ct05_tpa_no
from tt05_tpa a, tr12_accounts_tin b
where a.cr12_accounts_number = b.cr12_accounts_number(+)
and not exists (select 1
from tmr016_repaymentplansummary
where tpa_no = a.ct05_tpa_no)
and a.cg03_tpa_status_cde = '12603';
--reset paid amount to tpa down amount
update tmr016_repaymentplansummary a
set a.paid_amount = (select b.ct05_down_amt
from tt05_tpa b
where b.ct05_tpa_no = a.tpa_no);
--calculate paid amount
vSQL := 'select a.id,'
||' b.ct05_inst_freq,'
||' b.ct05_nr_inst,'
||' b.cr12_accounts_number,'
||' b.ct05_tax_year,'
||' b.ct05_prd_from,'
||' b.ct05_prd_to'
||' from tmr016_repaymentplansummary a, tt05_tpa b'
||' where a.tpa_no = b.ct05_tpa_no';
open vPick for vSQL;
loop
FETCH vPick INTO v_tpa;
EXIT WHEN vPick%NOTFOUND;
--calculate months
if v_tpa.FREQ = 1 then
v_Month := v_tpa.INST * 0.25;
elsif v_tpa.FREQ = 2 then
v_Month := v_tpa.INST * 0.5;
elsif v_tpa.FREQ = 4 then
v_Month := v_tpa.INST * 3;
else
v_Month := v_tpa.INST;
end if;
--update month
update tmr016_repaymentplansummary a set a.months = v_Month
where a.id = v_tpa.ID;
--get paid amount of this tpa
select sum(a.ct01_amt) into v_PaidAMT
from tt01_acct_transactions a
where a.ct01_dt_ct_ind = 'CT'
and a.ct01_trans_reversed <> 1
and exists(select 1
from tt01_acct_transactions b
where b.cr12_fin=a.cr12_fin
and trunc(b.ct01_tax_year,'yyyy')=trunc(a.ct01_tax_year,'yyyy')
and b.ct01_prd_from=a.ct01_prd_from
and b.ct01_prd_to=a.ct01_prd_to
and b.cn07_liability_type_id=a.cn07_liability_type_id
--and b.ct01_pen_int_prd_start=a.ct01_pen_int_prd_start
--and b.ct01_pen_int_prd_end=a.ct01_pen_int_prd_end
--and b.ct01_pen_int_tax_year=a.ct01_pen_int_tax_year
and b.cr12_fin = v_tpa.FIN
and trunc(b.ct01_tax_year,'yyyy') = trunc(v_tpa.TAXYEAR,'yyyy')
and b.ct01_prd_from = v_tpa.PRDFROM
and b.ct01_prd_to = v_tpa.PRDTO
and b.ct01_dt_ct_ind = 'DT'
and b.ct01_trans_reversed <> 1);
if v_PaidAMT is null then
v_PaidAMT := 0;
end if;
--update paid amount
update tmr016_repaymentplansummary a
set a.paid_amount = a.paid_amount + v_PaidAMT
where a.id = v_tpa.ID;
commit;
end loop;
close vPick;
END misr016_RepaymentPlanSummary;
PROCEDURE misr016_RepaymentPlanSummary IS
/******************************************************************************
NAME: misr016_RepaymentPlanSummary
PURPOSE:
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2006-3-21 lulineng 1. Created this procedure.
NOTES:
only insert increment
insert all tpa records
then update the paid amount by caculating the CT transactions from PPR
******************************************************************************/
TYPE TPA IS RECORD(
ID TMR016_REPAYMENTPLANSUMMARY.ID%TYPE,
FREQ TT05_TPA.CT05_INST_FREQ%TYPE,
INST TT05_TPA.CT05_NR_INST%TYPE,
FIN TT05_TPA.CR12_ACCOUNTS_NUMBER%TYPE,
TAXYEAR TT05_TPA.CT05_TAX_YEAR%TYPE,
PRDFROM TT05_TPA.CT05_PRD_FROM%TYPE,
PRDTO TT05_TPA.CT05_PRD_TO%TYPE
);
v_tpa TPA;
TYPE vCurType IS REF CURSOR;
vSQL VARCHAR2(1000);
vPick vCurType;
v_Month NUMBER(10,2);
v_PaidAMT NUMBER(19,2);
BEGIN
--insert new tpa
insert into tmr016_repaymentplansummary
(id,
cs05_office_id,
cg02_tax_type,
debt_amount,
create_date,
tpa_no)
select mis_sequence.nextval,
b.cs05_office_id,
b.cg02_tax_type,
a.ct05_tpa_amt,
a.ct05_create_date,
a.ct05_tpa_no
from tt05_tpa a, tr12_accounts_tin b
where a.cr12_accounts_number = b.cr12_accounts_number(+)
and not exists (select 1
from tmr016_repaymentplansummary
where tpa_no = a.ct05_tpa_no)
and a.cg03_tpa_status_cde = '12603';
--reset paid amount to tpa down amount
update tmr016_repaymentplansummary a
set a.paid_amount = (select b.ct05_down_amt
from tt05_tpa b
where b.ct05_tpa_no = a.tpa_no);
--calculate paid amount
vSQL := 'select a.id,'
||' b.ct05_inst_freq,'
||' b.ct05_nr_inst,'
||' b.cr12_accounts_number,'
||' b.ct05_tax_year,'
||' b.ct05_prd_from,'
||' b.ct05_prd_to'
||' from tmr016_repaymentplansummary a, tt05_tpa b'
||' where a.tpa_no = b.ct05_tpa_no';
open vPick for vSQL;
loop
FETCH vPick INTO v_tpa;
EXIT WHEN vPick%NOTFOUND;
--calculate months
if v_tpa.FREQ = 1 then
v_Month := v_tpa.INST * 0.25;
elsif v_tpa.FREQ = 2 then
v_Month := v_tpa.INST * 0.5;
elsif v_tpa.FREQ = 4 then
v_Month := v_tpa.INST * 3;
else
v_Month := v_tpa.INST;
end if;
--update month
update tmr016_repaymentplansummary a set a.months = v_Month
where a.id = v_tpa.ID;
--get paid amount of this tpa
select sum(a.ct01_amt) into v_PaidAMT
from tt01_acct_transactions a
where a.ct01_dt_ct_ind = 'CT'
and a.ct01_trans_reversed <> 1
and exists(select 1
from tt01_acct_transactions b
where b.cr12_fin=a.cr12_fin
and trunc(b.ct01_tax_year,'yyyy')=trunc(a.ct01_tax_year,'yyyy')
and b.ct01_prd_from=a.ct01_prd_from
and b.ct01_prd_to=a.ct01_prd_to
and b.cn07_liability_type_id=a.cn07_liability_type_id
--and b.ct01_pen_int_prd_start=a.ct01_pen_int_prd_start
--and b.ct01_pen_int_prd_end=a.ct01_pen_int_prd_end
--and b.ct01_pen_int_tax_year=a.ct01_pen_int_tax_year
and b.cr12_fin = v_tpa.FIN
and trunc(b.ct01_tax_year,'yyyy') = trunc(v_tpa.TAXYEAR,'yyyy')
and b.ct01_prd_from = v_tpa.PRDFROM
and b.ct01_prd_to = v_tpa.PRDTO
and b.ct01_dt_ct_ind = 'DT'
and b.ct01_trans_reversed <> 1);
if v_PaidAMT is null then
v_PaidAMT := 0;
end if;
--update paid amount
update tmr016_repaymentplansummary a
set a.paid_amount = a.paid_amount + v_PaidAMT
where a.id = v_tpa.ID;
commit;
end loop;
close vPick;
END misr016_RepaymentPlanSummary;
发表评论
-
oracle sql优化
2013-09-23 14:29 6581.绑定变量 不适用在OLAP系统中。 因为在OLAP中, ... -
阅读笔记 SQL
2013-08-14 18:24 830Start with...Connect By子句递归查询一般 ... -
oracle 锁 分析
2013-06-18 10:57 4791. 分为 tx 和 tm 。 即 行级 和 表级 其中 ... -
Oracle的TX锁(行级锁、事务锁)
2013-06-18 10:04 939问题:如何使用事务? ... -
mysql 时间戳自动更新
2013-04-09 10:24 983-- Table "pnodetail" ... -
阅读笔记
2013-02-07 17:24 431. 在OLTP系统装要注意sql的硬解析,但是在OLA ... -
synonym
2013-02-07 16:58 955建立一个同义词可以排除一个对象名字的限制. 如果你的数据库有多 ... -
oracle schema
2013-02-07 16:50 765A schema is a collection of dat ... -
物化视图的使用分析
2013-02-05 17:27 7861. 在 深入浅出 系列中,作者列举了一个例子来说明。 ... -
Oracle编程艺术阅读笔记-2
2013-01-29 10:40 7771. 位图索引。 不 ... -
Oracle:位图索引与死锁-2
2013-01-28 18:24 836位图索引被存储为压缩的索引值,其中包含了一个范围内的ROWID ... -
Oracle:位图索引与死锁-1
2013-01-28 18:04 869B 树索引更适合索引动态表的 OLTP 环境,而位图索引更适合 ... -
Oracle编程艺术阅读笔记-1
2013-01-24 18:48 8711. 绑定变量。 不使用会产生的影响: 每次运 ... -
JAVA完全控制Oracle中BLOB、CLOB说明
2012-12-28 17:07 852网络上很多关于JAVA对Oracle中BLOB、CLOB类型字 ... -
H2数据库的使用
2012-12-13 18:40 7731.下载h2的jar,例如h2-1.3.170.jar 2.c ... -
JTA
2012-12-05 17:35 976要理解 JTA 的实现原理 ... -
oracle 体系结构
2012-12-03 23:13 721[img][/img] oracle工作原理 ... -
oracle 存储过程实例-4
2012-12-03 23:04 542--错误处理部分。 --自 ... -
oracle 存储过程实例-4
2012-12-03 23:02 845--错误处理部分。 --自定义异常处理 CREATE OR ... -
oracle 存储过程实例-3
2012-12-03 21:42 815PROCEDURE autoissuereturns ( ...
相关推荐
### Oracle存储过程详解 #### 一、存储过程概述 存储过程是一种存储在数据库中的SQL脚本集合,它可以接受输入参数并返回输出结果。在Oracle数据库中,存储过程使用PL/SQL语言编写,这是一种专为Oracle设计的过程化...
oracle 存储过程 实例 教程 oracle 存储过程 实例 教程 对于初学者来说是很好的例题
这个"Oracle存储过程学习经典(实例)"资源显然是为初学者设计的,旨在帮助他们掌握如何创建、执行和管理存储过程。 存储过程在数据库管理中扮演着关键角色,它可以提升系统的性能,通过减少网络流量和提供预编译的...
Oracle存储过程是数据库管理系统中的一种重要特性,它允许开发者编写包含一系列SQL语句和PL/SQL块的可重用代码段。在这个“Oracle的一个简单存储过程实例”中,我们可以看到如何在Oracle环境中创建、调用和管理存储...
### Oracle存储过程语法及实例详解 #### 一、概述 Oracle存储过程是一种在数据库服务器上预编译并存储的程序块,它可以包含一系列SQL语句和控制流语句。存储过程提高了应用程序性能,并增强了数据的一致性和安全性...
Oracle存储过程是数据库管理系统中的一种重要特性,它允许开发者编写一系列SQL和PL/SQL语句,形成一个可重用的程序单元。存储过程在数据库中预先编译并存储,这样在执行时能提高效率,因为它避免了每次调用时的重新...
总之,"oracleasm-support-2.1.8-1.el5.i386.rpm"是Oracle ASM在32位RHEL5系统上运行的基石,它提供了必要的组件和工具,使得用户能够充分利用ASM的存储管理能力,简化数据库管理员的工作,提升系统的稳定性和性能。
Oracle 存储过程概念及实例 Oracle 存储过程是一种可以在数据库中存储和执行的一或多个 SQL 命令的对象。用户可以通过指定存储过程的名字并给出参数来执行它。 优点: 1. 大大提高效率。存储过程本身的执行速度...
下面,我们将深入探讨Oracle存储过程的关键概念,并通过一个具体的实例来理解其构建和执行流程。 ### Oracle存储过程概述 存储过程在数据库服务器上运行,可以包含控制流语句、变量定义、错误处理等结构,使其具备...
### Oracle数据库——存储过程实例 #### 1. 存储过程简介 在Oracle数据库中,存储过程是一种数据库对象,它由SQL语句和流程控制语句组成,并存储在数据库服务器上。当需要执行特定任务时,可以通过调用存储过程来...
在学习Oracle存储过程时,结合详细的文档如《oracle存储过程超详细使用手册.doc》和实例资料《oracle存储过程学习经典[语法+实例+调用].doc》会非常有帮助。这些文档通常会涵盖基础语法、实例解析、调用方法、异常...
### Oracle存储过程应用实例 #### 一、存储过程概述 存储过程是一种预先编写并编译好,存储在数据库中的程序代码。它能够接受输入参数,并根据这些参数执行一系列操作,最终返回结果。存储过程的优势在于它能够...
Oracle ASM,全称为Oracle ...总的来说,"oracleasm-support-2.1.8-1.el5.x86_64"是Oracle数据库环境中必不可少的一部分,它为RHEL 5系统提供了运行Oracle ASM所需的基础支持,从而实现了高效、可靠的存储管理。
oracle存储过程实例1
水晶报表连接Oracle存储过程实例 本文将详细介绍如何使用水晶报表连接Oracle存储过程实例,从而实现数据报表的自动化生成。我们将从创建 Oracle 存储过程开始,接着指导读者如何在水晶报表中应用该存储过程。 一、...
4. 在安装过程中,需要遵循Oracle官方的指导文档,正确配置内核参数和ASM实例。 5. 安装完成后,通过`modprobe`命令加载kmod-oracleasm内核模块,然后使用oracleasmlib和oracleasm-support中的工具进行ASM卷的创建和...
在本例中,“Oracle存储过程实例使用显示游标”着重展示了如何在存储过程中调用函数,并通过游标来处理和更新数据。 首先,我们需要了解存储过程的基本结构。一个存储过程通常包含以下部分: 1. **声明部分**:在...