oracle 关于房贷计算过程
create or replace procedure fd(p_bj in number, --贷款本金
p_nll in number, --年利率
p_ns in number, --贷款年数
p_xh in number, --还款月序号
msg out varchar) is
v_yll number;
v_ys number;
v_yhbj number;
v_myyge number;
v_myhlx number;
v_myhbj number;
v_zlx number;
v_mydjlx number;
begin
v_yll := p_nll / 12;
v_ys := p_ns * 12;
if p_xh > v_ys then
msg := '还款月序号不可大于还款月数';
goto exits;
end if;
select (p_bj * v_yll * power((1 + v_yll), v_ys)) /
(power((1 + v_yll), v_ys) - 1)
into v_myyge
from dual;
select (p_bj * v_yll * power((1 + v_yll), v_ys)) /
(power((1 + v_yll), v_ys) - 1) * v_ys - p_bj
into v_zlx
from dual;
msg := msg|| '等额本息';
msg := msg|| chr(10) ||'总利息:' || round(v_zlx, 2);
select p_bj * v_yll *
(power((1 + v_yll), v_ys) - power((1 + v_yll), (p_xh - 1))) /
(power((1 + v_yll), v_ys) - 1)
into v_myhlx
from dual;
select p_bj * v_yll * power((1 + v_yll), (p_xh - 1)) /
(power((1 + v_yll), v_ys) - 1)
into v_myhbj
from dual;
msg := msg||chr(10) ||'第' || p_xh || '个月 供额:' || round(v_myyge, 2) || ' 本金:' || round(v_myhbj, 2) || ' 利息:' || round(v_myhlx, 2);
select p_bj / v_ys into v_myhbj from dual;
select p_bj / v_ys * v_yll into v_mydjlx from dual;
select ((p_bj / v_ys + p_bj * v_yll) + p_bj / v_ys * (1 + v_yll)) / 2 * v_ys - p_bj
into v_zlx
from dual;
msg := msg||chr(10) ||'等额本金';
msg := msg||chr(10) ||'总利息:' || round(v_zlx, 2) || ' 每月供递减额:' || round(v_mydjlx, 2);
v_yhbj := p_bj / v_ys * (p_xh - 1);
select (p_bj - v_yhbj) * v_yll into v_myhlx from dual;
select (p_bj / v_ys) + v_myhlx into v_myyge from dual;
msg := msg||chr(10) ||'第' || p_xh || '个月 供额:' || round(v_myyge, 2) ||' 本金:' || round(v_myhbj, 2) ||
' 利息:' || round(v_myhlx, 2);
<<exits>>
null;
exception
when others then
msg := sqlerrm;
end;
--------------------------------------------------------------------
输入如:贷款本金 400000 万
年利率 0.049
贷款年数 20
还款月序号 1 (第一个月)
返回结果:
等额本息
总利息:228266.29
第1个月 供额:2617.78 本金:984.44 利息:1633.33
等额本金
总利息:196816.67 每月供递减额:6.81
第1个月 供额:3300 本金:1666.67 利息:1633.33
--------------------------------------------------------------------
oracle 关于房贷计算过程的更多相关文章
- 虚拟机VMWARE上ORACLE License 的计算
Oracle License的计算有两种方式:按照用户数和CPU个数. 其中按CPU计算方式如下: License Number = The Number of CPU Cores * Core ...
- oracle 11g在安装过程中出现监听程序未启动或数据库服务未注册到该监听程序
15511477451 原文 oracle 11g在安装过程中出现监听程序未启动或数据库服务未注册到该监听程序? 环境:win7 64位系统.oracle11g数据库 问题描述:在win7 64位系统 ...
- linux主机load average的概念&&计算过程&&注意事项
最近开发的一个模块需要根据机房各节点的负载情况(如网卡IO.load average等指标)做任务调度,刚开始对Linux机器load average这项指标不是很清楚,经过调研,终于搞清楚了其计算方 ...
- 机器翻译评价指标之BLEU详细计算过程
原文连接 https://blog.csdn.net/guolindonggld/article/details/56966200 1. 简介 BLEU(Bilingual Evaluation Un ...
- 闰平年简介及计算过程描述 - Java代码实现
import java.util.Scanner; /** * @author Shelwin Wei * 分析过程请参照<闰平年简介及计算过程描述>,网址 http://www.cnbl ...
- CFD计算过程发散诸多原因分析【转载】
转载自: http://blog.sina.com.cn/s/blog_5fdfa7e601010rkx.html 今天探讨引起CFD计算过程中发散的一些原因.cfd计算是将描述物理问题的偏微分方程转 ...
- 随机森林之oob的计算过程
随机森林有一个重要的优点就是,没有必要对它进行交叉验证或者用一个独立的测试集来获得误差的一个无偏估计.它可以在内部进行评估,也就是说在生成的过程中就可以对误差建立一个无偏估计. 随机森林在生成每颗决策 ...
- 来去学习之---KMP算法--next计算过程
一.概述 KMP算法是一种字符串匹配算法,比如现有字符串 T:ABCDABCDABCDCABCDABCDE, P:ABCDABCDE P字符串对应的next值:[0,0,0,0,1,2,3,4,0] ...
- DFT计算过程详解
DFT计算过程详解 平时工作中,我们在计算傅里叶变换时,通常会直接调用Matlab中的FFT函数,或者是其他编程语言中已经为我们封装好的函数,很少去探究具体的计算过程,本文以一个具体的例子,向你一步一 ...
随机推荐
- bochs的bochsrc说明
########################################## Configuration file for bochs ################### ...
- Xilinx Zynq ZC-702 开发(02)—— 软件程序调试方法
1.简介 本教程将指导您使用 SDK 调试应用程序项目,本教程中描述的调试步骤是非常基础的:有关更多信息,请参考 SDK 帮助中的调试任务. 在使用本教程之前,您应该已经创建了一个应用程序项目,并在工 ...
- mysql的SQL集锦
1. SQL内顺号 SELECT (@num := @num + 1) as index, item FROM tbl, (select @num := 0) dmy; 2. 空
- Hadoop Mapreduce运行流程
Mapreduce的运算过程为两个阶段: 第一个阶段的map task相互独立,完全并行: 第二个阶段的reduce task也是相互独立,但依赖于上一阶段所有map task并发实例的输出: 这些t ...
- random-----随机数
1 import random 2 3 print(random.random())#(0,1)----float 大于0且小于1之间的小数 4 5 print(random.randint(1,3) ...
- go调查内存泄漏
curl x.x.x.x/debug/pprof/heap > base.heap 过段时间 curl x.x.x.x/debug/pprof/heap > current.heap go ...
- Python常用字符编码(转)
Python常用字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交 ...
- eayUi panel实现上一页下一页
function 是为了第一次加载的时候显示页面 butt1和butt2触发上一页下一页,后面绑定参数即可 问题:.panel({href:href})到后台的时候会请求两次,这个问题还没有解决 把 ...
- IDEA连接数据库自动生成实体类
1.连接数据库 (1)按下图 , 点击view-----选择tool windows----------选择database并点击 (2)弹出Database窗口,点击加号--------- ...
- VMware要不要装在固态SSD上,虚拟机系统文件要不要放固态SSD上,虚拟机伤不伤固态SSD
先说结论:VMware建议装在固态上运行快,系统文件最好放在机械硬盘上(有钱除外),虚拟机会伤固态. 今天在学淘淘商城中的搜索项目,克隆了一个虚拟机,这个虚拟机开机贼慢,令人无法忍受,我觉得我再也受不 ...