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函数,或者是其他编程语言中已经为我们封装好的函数,很少去探究具体的计算过程,本文以一个具体的例子,向你一步一 ...
随机推荐
- android studio 运行项目时waiting for target device to come online
cmd进入命令行,进入adb所在的目录下: 或者在Terminal中输入命令: adb kill-server adb start-server
- mezzanine的breadcrumb
page_menu tag为什么能渲染出当前页的面包屑路径??靠的是request的page对象,要是page的自己或是它的的祖先才渲染,是根据page的属性page.is_current_or_as ...
- 软件工程个人作业四--alpha阶段个人总结
个人总结 (1)个人总结 类型 具体技能和面试问题 现在的回答 毕业找工作的时间 语言 最拿手的计算机语言之一,代码量多少 C语言相对熟悉一点 软件实现 你有没有在别的代码的基础上改进,你是怎么读懂别 ...
- 'Settings' object has no attribute 'FYFQ_URL_test'
读取django settings内容时报错: 'Settings' object has no attribute 'FYFQ_URL_test' 原因:settings中的变量,必须都是大写
- abaqus2016安装过程中出现error:unable to add abaqus command directory to PATH variable
请问abaqus2016安装过程中出现error:unable to add abaqus command directory to PATH variable是什么原因,怎么解决啊,总是安装失败 这 ...
- groovy 知识集锦
对应官方的<Program structure>的中文翻译 http://www.cnblogs.com/zhaoxia0815/p/7404387.html
- 【398】COMP9021 - Polynomial
构建 Polynomial 类,实现 +, -, , / and +=, -=, =, /= 参考:如何用python编程求解二元一次方程组.如x+y=3;x-y=1 参考:python对重载运算符的 ...
- SQL Server 2016 在Windows Server 2012 R2 上的初步安装与远程连接实战(一):初步配置
1.安装过程没有什么说头 2.下载并安装SSMS(SQLServer Management Studio),目前已更新到2017.1 3.使用SSMS登陆数据库 第一次选择Windows 身份验证,可 ...
- 多元高斯分布(The Multivariate normal distribution)
在数据建模时,经常会用到多元高斯分布模型,下面就这个模型的公式并结合它的几何意义,来做一个直观上的讲解. 1, 标准高斯函数 高斯函数标准型: $f(x) = \frac{1}{\sqrt{2π}}e ...
- 项目需求分析与建议-NABCD模型
N(Need 需求) 首先我们的创意解决了现有阶段学校查空余教师的问题,充分解决了同学们上自习却找不到教室的苦衷,同时也会适当的拓展一些适当的学习计时功能或者每日一语等等,来帮助同学们来控制好学习时间 ...