yangtingkun
===========================================================
计算月还款的小过程(三)
===========================================================

又进行了一些修改,增加了计算提前还款的功能。

计算月还款的小过程(一):http://blog.itpub.net/post/468/27307

计算月还款的小过程(二):http://blog.itpub.net/post/468/27440

 


代码:

SQL> CREATE OR REPLACE PACKAGE P_PAY_MONTHLY AS
  2 
  3   TYPE T_MONTHLY IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
  4  
  5   G_MONTHS NUMBER;
  6   G_TOTAL NUMBER;
  7   G_BEGIN_DATE DATE;
  8   G_TYPE NUMBER;
  9   G_PAY_MONTHLY T_MONTHLY;
 10   G_PAY_ACCRUAL T_MONTHLY;
 11   G_PAY_CORPUS T_MONTHLY;
 12   G_PAY_CORPUS_ALREADY T_MONTHLY;
 13   G_RATE_PER_MONTH T_MONTHLY;
 14  
 15   PROCEDURE P_CLEAR;
 16  
 17   PROCEDURE P_SET_INITIAL
 18   (
 19    P_TOTAL IN NUMBER, P_YEARS IN NUMBER, P_BEGIN_DATE IN DATE, P_RATE_YEAR IN NUMBER, P_TYPE IN
NUMBER
 20   );
 21  
 22   PROCEDURE P_CHANGE_RATE(P_CHANGE_DATE IN DATE, P_CHANGE_RATE_PER_YEAR IN NUMBER);
 23  
 24   PROCEDURE P_PAY_AHEAD(P_PAY_AHEAD_DATE IN DATE, P_PAY_AHEAD IN NUMBER);
 25  
 26   PROCEDURE P_REPORT;
 27  
 28   FUNCTION F_PAY_MONTHLY
 29   (
 30    P_TOTAL IN NUMBER, P_YEARS IN NUMBER, P_RATE_YEAR IN NUMBER,
 31    P_TYPE IN NUMBER, P_MONTH_RETURN IN NUMBER
 32   ) RETURN NUMBER;
 33   PRAGMA RESTRICT_REFERENCES (F_PAY_MONTHLY, RNDS, WNDS, RNPS, WNPS);
 34  
 35   FUNCTION F_PAY_MONTHLY
 36   (
 37    P_TOTAL IN NUMBER, P_YEARS IN NUMBER, P_RATE1_YEAR IN NUMBER, P_RATE1_MONTHS IN NUMBER,
 38    P_RATE2_YEAR IN NUMBER, P_TYPE IN NUMBER, P_MONTH_RETURN IN NUMBER
 39   ) RETURN NUMBER;
 40   PRAGMA RESTRICT_REFERENCES (F_PAY_MONTHLY, RNDS, WNDS, RNPS, WNPS);
 41 
 42  END;
 43  /

程序包已创建。

SQL> CREATE OR REPLACE PACKAGE BODY P_PAY_MONTHLY AS
  2 
  3   FUNCTION F_PAY_MONTHLY
  4   (
  5    P_TOTAL IN NUMBER, P_YEARS IN NUMBER, P_RATE_YEAR IN NUMBER,
  6    P_TYPE IN NUMBER, P_MONTH_RETURN IN NUMBER
  7   ) RETURN NUMBER AS
  8    V_RATE_MONTH NUMBER := P_RATE_YEAR / 12;
  9    V_MONTHS NUMBER := P_YEARS * 12;
 10   BEGIN
 11    IF P_TYPE = 1 THEN
 12     RETURN P_TOTAL * V_RATE_MONTH * POWER(1 + V_RATE_MONTH, V_MONTHS)/(POWER(1 + V_RATE_MONTH, V_MONTHS) - 1);
 13    ELSE
 14     IF P_MONTH_RETURN >  V_MONTHS THEN
 15      RETURN 0;
 16     END IF;
 17     RETURN P_TOTAL/V_MONTHS + (P_TOTAL - P_TOTAL * P_MONTH_RETURN / V_MONTHS)* V_RATE_MONTH;
 18    END IF;
 19   END;
 20 
 21   FUNCTION F_PAY_MONTHLY
 22   (
 23    P_TOTAL IN NUMBER, P_YEARS IN NUMBER, P_RATE1_YEAR IN NUMBER, P_RATE1_MONTHS IN NUMBER,
 24    P_RATE2_YEAR IN NUMBER, P_TYPE IN NUMBER, P_MONTH_RETURN IN NUMBER
 25   ) RETURN NUMBER AS
 26    V_RATE1_MONTH NUMBER := P_RATE1_YEAR / 12;
 27    V_RATE2_MONTH NUMBER := P_RATE2_YEAR / 12;
 28    V_MONTHS NUMBER := P_YEARS * 12;
 29   BEGIN
 30    IF P_MONTH_RETURN <= P_RATE1_MONTHS THEN
 31     IF P_TYPE = 1 THEN
 32      RETURN P_TOTAL * V_RATE1_MONTH * POWER(1 + V_RATE1_MONTH, V_MONTHS)/(POWER(1 + V_RATE1_MONTH, V_MONTHS) - 1);
 33     ELSE
 34      RETURN P_TOTAL/V_MONTHS + (P_TOTAL - P_TOTAL * P_MONTH_RETURN / V_MONTHS)* V_RATE1_MONTH;
 35     END IF;
 36    ELSIF P_MONTH_RETURN > V_MONTHS THEN
 37     RETURN 0;
 38    ELSE
 39     IF P_TYPE = 1 THEN
 40      RETURN F_PAY_MONTHLY(P_TOTAL * (1 - (POWER(1 + V_RATE1_MONTH, P_RATE1_MONTHS) - 1)
 41       / (POWER(1 + V_RATE1_MONTH, V_MONTHS) - 1)), (V_MONTHS - P_RATE1_MONTHS)/12,
 42       P_RATE2_YEAR, P_TYPE, P_MONTH_RETURN - P_RATE1_MONTHS);
 43     ELSE
 44      RETURN P_TOTAL/V_MONTHS + (P_TOTAL - P_TOTAL * P_MONTH_RETURN / V_MONTHS)* V_RATE2_MONTH;
 45     END IF;
 46    END IF;
 47   END;
 48 
 49   PROCEDURE P_CLEAR AS
 50    V_EMPTY T_MONTHLY;
 51   BEGIN
 52    G_MONTHS := NULL;
 53    G_TOTAL := NULL;
 54    G_BEGIN_DATE := NULL;
 55    G_TYPE := NULL;
 56    G_PAY_MONTHLY := V_EMPTY;
 57    G_PAY_ACCRUAL := V_EMPTY;
 58    G_PAY_CORPUS := V_EMPTY;
 59    G_PAY_CORPUS_ALREADY := V_EMPTY;
 60    G_RATE_PER_MONTH := V_EMPTY;
 61   END;
 62  
 63   PROCEDURE P_SET_INITIAL
 64   (
 65    P_TOTAL IN NUMBER, P_YEARS IN NUMBER, P_BEGIN_DATE IN DATE, P_RATE_YEAR IN NUMBER, P_TYPE IN NUMBER
 66   ) AS
 67   BEGIN
 68    G_TOTAL := P_TOTAL;
 69    G_MONTHS := P_YEARS * 12;
 70    G_BEGIN_DATE := TRUNC(P_BEGIN_DATE, 'MM');
 71    G_TYPE := P_TYPE;
 72    G_PAY_CORPUS_ALREADY(0) := 0;
 73   
 74    IF P_TYPE = 1 THEN
 75     FOR I IN 1..G_MONTHS LOOP
 76      G_RATE_PER_MONTH(I) := P_RATE_YEAR/12;
 77      G_PAY_MONTHLY(I) := G_TOTAL * G_RATE_PER_MONTH(I) * POWER(1 + G_RATE_PER_MONTH(I), G_MONTHS)
 78       / (POWER(1 + G_RATE_PER_MONTH(I), G_MONTHS) - 1);
 79      G_PAY_ACCRUAL(I) := (G_TOTAL - G_PAY_CORPUS_ALREADY(I - 1)) * G_RATE_PER_MONTH(I);
 80      G_PAY_CORPUS(I) := G_PAY_MONTHLY(I) - G_PAY_ACCRUAL(I);
 81      G_PAY_CORPUS_ALREADY(I) := G_PAY_CORPUS_ALREADY(I-1) + G_PAY_CORPUS(I);
 82     END LOOP;
 83    ELSE
 84     FOR I IN 1..G_MONTHS LOOP
 85      G_RATE_PER_MONTH(I) := P_RATE_YEAR/12;
 86      G_PAY_MONTHLY(I) := G_TOTAL/G_MONTHS + (G_TOTAL - G_PAY_CORPUS_ALREADY(I-1))* G_RATE_PER_MONTH(I);
 87      G_PAY_CORPUS(I) := G_TOTAL/G_MONTHS;
 88      G_PAY_ACCRUAL(I) := G_PAY_MONTHLY(I) - G_PAY_CORPUS(I);
 89      G_PAY_CORPUS_ALREADY(I) := G_PAY_CORPUS_ALREADY(I-1) + G_PAY_CORPUS(I);
 90     END LOOP;
 91    END IF;
 92  
 93   END;
 94  
 95   PROCEDURE P_CHANGE_RATE(P_CHANGE_DATE IN DATE, P_CHANGE_RATE_PER_YEAR IN NUMBER) AS
 96    V_MONTHS NUMBER;
 97    V_TOTAL NUMBER;
 98   BEGIN
 99    IF G_TOTAL IS NOT NULL THEN
100     V_MONTHS := MONTHS_BETWEEN(TRUNC(P_CHANGE_DATE, 'MM'), G_BEGIN_DATE);
101     V_TOTAL := G_TOTAL - G_PAY_CORPUS_ALREADY(V_MONTHS);
102     IF G_TYPE = 1 THEN
103      FOR I IN V_MONTHS + 1..G_MONTHS LOOP
104       G_RATE_PER_MONTH(I) := P_CHANGE_RATE_PER_YEAR/12;
105       G_PAY_MONTHLY(I) := V_TOTAL * G_RATE_PER_MONTH(I) * POWER(1 + G_RATE_PER_MONTH(I), G_MONTHS - V_MONTHS)
106        / (POWER(1 + G_RATE_PER_MONTH(I), G_MONTHS - V_MONTHS) - 1);
107       G_PAY_ACCRUAL(I) := (G_TOTAL - G_PAY_CORPUS_ALREADY(I - 1)) * G_RATE_PER_MONTH(I);
108       G_PAY_CORPUS(I) := G_PAY_MONTHLY(I) - G_PAY_ACCRUAL(I);
109       G_PAY_CORPUS_ALREADY(I) := G_PAY_CORPUS_ALREADY(I-1) + G_PAY_CORPUS(I);
110      END LOOP;
111     ELSE
112      FOR I IN V_MONTHS + 1..G_MONTHS LOOP
113       G_RATE_PER_MONTH(I) := P_CHANGE_RATE_PER_YEAR/12;
114       G_PAY_MONTHLY(I) := V_TOTAL/(G_MONTHS - V_MONTHS) + (G_TOTAL - G_PAY_CORPUS_ALREADY(I-1))* G_RATE_PER_MONTH(I);
115       G_PAY_CORPUS(I) := V_TOTAL/(G_MONTHS - V_MONTHS);
116       G_PAY_ACCRUAL(I) := G_PAY_MONTHLY(I) - G_PAY_CORPUS(I);
117       G_PAY_CORPUS_ALREADY(I) := G_PAY_CORPUS_ALREADY(I-1) + G_PAY_CORPUS(I);
118      END LOOP;
119     END IF;
120    END IF;
121   END;
122  
123   PROCEDURE P_PAY_AHEAD(P_PAY_AHEAD_DATE IN DATE, P_PAY_AHEAD IN NUMBER) AS
124    V_MONTHS NUMBER;
125    V_TOTAL NUMBER;
126   BEGIN
127    IF G_TOTAL IS NOT NULL THEN
128     V_MONTHS := MONTHS_BETWEEN(TRUNC(P_PAY_AHEAD_DATE, 'MM'), G_BEGIN_DATE);
129     G_PAY_CORPUS_ALREADY(V_MONTHS) := G_PAY_CORPUS_ALREADY(V_MONTHS) + P_PAY_AHEAD;
130     V_TOTAL := G_TOTAL - G_PAY_CORPUS_ALREADY(V_MONTHS);
131     IF G_TYPE = 1 THEN
132      FOR I IN V_MONTHS + 1..G_MONTHS LOOP
133       G_PAY_MONTHLY(I) := V_TOTAL * G_RATE_PER_MONTH(I) * POWER(1 + G_RATE_PER_MONTH(I), G_MONTHS - V_MONTHS)
134        / (POWER(1 + G_RATE_PER_MONTH(I), G_MONTHS - V_MONTHS) - 1);
135       G_PAY_ACCRUAL(I) := (G_TOTAL - G_PAY_CORPUS_ALREADY(I - 1)) * G_RATE_PER_MONTH(I);
136       G_PAY_CORPUS(I) := G_PAY_MONTHLY(I) - G_PAY_ACCRUAL(I);
137       G_PAY_CORPUS_ALREADY(I) := G_PAY_CORPUS_ALREADY(I-1) + G_PAY_CORPUS(I);
138      END LOOP;
139     ELSE
140      FOR I IN V_MONTHS + 1..G_MONTHS LOOP
141       G_PAY_MONTHLY(I) := V_TOTAL/(G_MONTHS - V_MONTHS) + (G_TOTAL - G_PAY_CORPUS_ALREADY(I-1))* G_RATE_PER_MONTH(I);
142       G_PAY_CORPUS(I) := V_TOTAL/(G_MONTHS - V_MONTHS);
143       G_PAY_ACCRUAL(I) := G_PAY_MONTHLY(I) - G_PAY_CORPUS(I);
144       G_PAY_CORPUS_ALREADY(I) := G_PAY_CORPUS_ALREADY(I-1) + G_PAY_CORPUS(I);
145      END LOOP;
146     END IF;
147    END IF;
148   END;
149  
150   PROCEDURE P_REPORT AS
151   BEGIN
152    IF G_TOTAL IS NOT NULL THEN
153     DBMS_OUTPUT.PUT_LINE('贷款总额: ' || G_TOTAL);
154     DBMS_OUTPUT.PUT_LINE('贷款年限: ' || G_MONTHS/12);
155     DBMS_OUTPUT.PUT_LINE('还贷开始日期: ' || TO_CHAR(G_BEGIN_DATE, 'YYYY-MM'));
156     FOR I IN 1..G_MONTHS LOOP
157      DBMS_OUTPUT.PUT_LINE(TO_CHAR(ADD_MONTHS(G_BEGIN_DATE, I - 1), 'YYYY-MM') ||  ' 本月应还:' ||
158       ROUND(G_PAY_MONTHLY(I), 2) || ' 其中本金:' || ROUND(G_PAY_CORPUS(I), 2) || ' 利息:' ||
159       ROUND(G_PAY_ACCRUAL(I), 2) || ' 累计已还本金:' || ROUND(G_PAY_CORPUS_ALREADY(I), 2));
160     END LOOP;
161    END IF;
162   END;
163  
164  END;
165  /

程序包主体已创建。

保留了前面的两个函数,当查询某一个月的应还款时可以调用这两个函数,另外又编写了几个过程,用来设置贷款的初始状态、设置提前还款或利息变更。

计算等额本息,5年贷款200000,年利息5.04%,还贷方式为等额本息。从2004年5月开始还贷,2005年1月利息增长为5.31%,预计2005年8月提前还款10万,2006年1月利息增长为5.51%,下面给出计算过程:

SQL> SET SERVEROUT ON SIZE 1000000
SQL> EXEC P_PAY_MONTHLY.P_SET_INITIAL(200000, 5, TO_DATE('2004-5', 'YYYY-MM'), 0.0504, 1)

PL/SQL 过程已成功完成。

SQL> EXEC P_PAY_MONTHLY.P_REPORT
贷款总额: 200000
贷款年限: 5
还贷开始日期: 2004-05
2004-05 本月应还:3777.91 其中本金:2937.91 利息:840 累计已还本金:2937.91
2004-06 本月应还:3777.91 其中本金:2950.25 利息:827.66 累计已还本金:5888.17
2004-07 本月应还:3777.91 其中本金:2962.64 利息:815.27 累计已还本金:8850.81
2004-08 本月应还:3777.91 其中本金:2975.09 利息:802.83 累计已还本金:11825.89
2004-09 本月应还:3777.91 其中本金:2987.58 利息:790.33 累计已还本金:14813.48
2004-10 本月应还:3777.91 其中本金:3000.13 利息:777.78 累计已还本金:17813.61
2004-11 本月应还:3777.91 其中本金:3012.73 利息:765.18 累计已还本金:20826.34
2004-12 本月应还:3777.91 其中本金:3025.38 利息:752.53 累计已还本金:23851.72
2005-01 本月应还:3777.91 其中本金:3038.09 利息:739.82 累计已还本金:26889.81
2005-02 本月应还:3777.91 其中本金:3050.85 利息:727.06 累计已还本金:29940.66
2005-03 本月应还:3777.91 其中本金:3063.66 利息:714.25 累计已还本金:33004.32
2005-04 本月应还:3777.91 其中本金:3076.53 利息:701.38 累计已还本金:36080.86
2005-05 本月应还:3777.91 其中本金:3089.45 利息:688.46 累计已还本金:39170.31
2005-06 本月应还:3777.91 其中本金:3102.43 利息:675.48 累计已还本金:42272.74
2005-07 本月应还:3777.91 其中本金:3115.46 利息:662.45 累计已还本金:45388.19
2005-08 本月应还:3777.91 其中本金:3128.54 利息:649.37 累计已还本金:48516.74
2005-09 本月应还:3777.91 其中本金:3141.68 利息:636.23 累计已还本金:51658.42
2005-10 本月应还:3777.91 其中本金:3154.88 利息:623.03 累计已还本金:54813.3
2005-11 本月应还:3777.91 其中本金:3168.13 利息:609.78 累计已还本金:57981.43
2005-12 本月应还:3777.91 其中本金:3181.43 利息:596.48 累计已还本金:61162.86
2006-01 本月应还:3777.91 其中本金:3194.8 利息:583.12 累计已还本金:64357.66
2006-02 本月应还:3777.91 其中本金:3208.22 利息:569.7 累计已还本金:67565.88
2006-03 本月应还:3777.91 其中本金:3221.69 利息:556.22 累计已还本金:70787.57
2006-04 本月应还:3777.91 其中本金:3235.22 利息:542.69 累计已还本金:74022.79
2006-05 本月应还:3777.91 其中本金:3248.81 利息:529.1 累计已还本金:77271.59
2006-06 本月应还:3777.91 其中本金:3262.45 利息:515.46 累计已还本金:80534.05
2006-07 本月应还:3777.91 其中本金:3276.16 利息:501.76 累计已还本金:83810.2
2006-08 本月应还:3777.91 其中本金:3289.92 利息:488 累计已还本金:87100.12
2006-09 本月应还:3777.91 其中本金:3303.73 利息:474.18 累计已还本金:90403.85
2006-10 本月应还:3777.91 其中本金:3317.61 利息:460.3 累计已还本金:93721.46
2006-11 本月应还:3777.91 其中本金:3331.54 利息:446.37 累计已还本金:97053.01
2006-12 本月应还:3777.91 其中本金:3345.54 利息:432.38 累计已还本金:100398.54
2007-01 本月应还:3777.91 其中本金:3359.59 利息:418.33 累计已还本金:103758.13
2007-02 本月应还:3777.91 其中本金:3373.7 利息:404.22 累计已还本金:107131.83
2007-03 本月应还:3777.91 其中本金:3387.87 利息:390.05 累计已还本金:110519.69
2007-04 本月应还:3777.91 其中本金:3402.1 利息:375.82 累计已还本金:113921.79
2007-05 本月应还:3777.91 其中本金:3416.38 利息:361.53 累计已还本金:117338.17
2007-06 本月应还:3777.91 其中本金:3430.73 利息:347.18 累计已还本金:120768.91
2007-07 本月应还:3777.91 其中本金:3445.14 利息:332.77 累计已还本金:124214.05
2007-08 本月应还:3777.91 其中本金:3459.61 利息:318.3 累计已还本金:127673.66
2007-09 本月应还:3777.91 其中本金:3474.14 利息:303.77 累计已还本金:131147.8
2007-10 本月应还:3777.91 其中本金:3488.73 利息:289.18 累计已还本金:134636.54
2007-11 本月应还:3777.91 其中本金:3503.39 利息:274.53 累计已还本金:138139.92
2007-12 本月应还:3777.91 其中本金:3518.1 利息:259.81 累计已还本金:141658.02
2008-01 本月应还:3777.91 其中本金:3532.88 利息:245.04 累计已还本金:145190.9
2008-02 本月应还:3777.91 其中本金:3547.71 利息:230.2 累计已还本金:148738.61
2008-03 本月应还:3777.91 其中本金:3562.62 利息:215.3 累计已还本金:152301.23
2008-04 本月应还:3777.91 其中本金:3577.58 利息:200.33 累计已还本金:155878.81
2008-05 本月应还:3777.91 其中本金:3592.6 利息:185.31 累计已还本金:159471.41
2008-06 本月应还:3777.91 其中本金:3607.69 利息:170.22 累计已还本金:163079.1
2008-07 本月应还:3777.91 其中本金:3622.85 利息:155.07 累计已还本金:166701.95
2008-08 本月应还:3777.91 其中本金:3638.06 利息:139.85 累计已还本金:170340.01
2008-09 本月应还:3777.91 其中本金:3653.34 利息:124.57 累计已还本金:173993.35
2008-10 本月应还:3777.91 其中本金:3668.69 利息:109.23 累计已还本金:177662.04
2008-11 本月应还:3777.91 其中本金:3684.09 利息:93.82 累计已还本金:181346.13
2008-12 本月应还:3777.91 其中本金:3699.57 利息:78.35 累计已还本金:185045.7
2009-01 本月应还:3777.91 其中本金:3715.1 利息:62.81 累计已还本金:188760.8
2009-02 本月应还:3777.91 其中本金:3730.71 利息:47.2 累计已还本金:192491.51
2009-03 本月应还:3777.91 其中本金:3746.38 利息:31.54 累计已还本金:196237.89
2009-04 本月应还:3777.91 其中本金:3762.11 利息:15.8 累计已还本金:200000

PL/SQL 过程已成功完成。

SQL> EXEC P_PAY_MONTHLY.P_CHANGE_RATE(TO_DATE('2005-1', 'YYYY-MM'), 0.0531)

PL/SQL 过程已成功完成。

SQL> EXEC P_PAY_MONTHLY.P_REPORT
贷款总额: 200000
贷款年限: 5
还贷开始日期: 2004-05
2004-05 本月应还:3777.91 其中本金:2937.91 利息:840 累计已还本金:2937.91
2004-06 本月应还:3777.91 其中本金:2950.25 利息:827.66 累计已还本金:5888.17
2004-07 本月应还:3777.91 其中本金:2962.64 利息:815.27 累计已还本金:8850.81
2004-08 本月应还:3777.91 其中本金:2975.09 利息:802.83 累计已还本金:11825.89
2004-09 本月应还:3777.91 其中本金:2987.58 利息:790.33 累计已还本金:14813.48
2004-10 本月应还:3777.91 其中本金:3000.13 利息:777.78 累计已还本金:17813.61
2004-11 本月应还:3777.91 其中本金:3012.73 利息:765.18 累计已还本金:20826.34
2004-12 本月应还:3777.91 其中本金:3025.38 利息:752.53 累计已还本金:23851.72
2005-01 本月应还:3799.58 其中本金:3020.13 利息:779.46 累计已还本金:26871.85
2005-02 本月应还:3799.58 其中本金:3033.49 利息:766.09 累计已还本金:29905.34
2005-03 本月应还:3799.58 其中本金:3046.92 利息:752.67 累计已还本金:32952.26
2005-04 本月应还:3799.58 其中本金:3060.4 利息:739.19 累计已还本金:36012.65
2005-05 本月应还:3799.58 其中本金:3073.94 利息:725.64 累计已还本金:39086.59
2005-06 本月应还:3799.58 其中本金:3087.54 利息:712.04 累计已还本金:42174.14
2005-07 本月应还:3799.58 其中本金:3101.2 利息:698.38 累计已还本金:45275.34
2005-08 本月应还:3799.58 其中本金:3114.93 利息:684.66 累计已还本金:48390.27
2005-09 本月应还:3799.58 其中本金:3128.71 利息:670.87 累计已还本金:51518.98
2005-10 本月应还:3799.58 其中本金:3142.56 利息:657.03 累计已还本金:54661.54
2005-11 本月应还:3799.58 其中本金:3156.46 利息:643.12 累计已还本金:57818
2005-12 本月应还:3799.58 其中本金:3170.43 利息:629.16 累计已还本金:60988.43
2006-01 本月应还:3799.58 其中本金:3184.46 利息:615.13 累计已还本金:64172.88
2006-02 本月应还:3799.58 其中本金:3198.55 利息:601.03 累计已还本金:67371.43
2006-03 本月应还:3799.58 其中本金:3212.7 利息:586.88 累计已还本金:70584.14
2006-04 本月应还:3799.58 其中本金:3226.92 利息:572.67 累计已还本金:73811.06
2006-05 本月应还:3799.58 其中本金:3241.2 利息:558.39 累计已还本金:77052.25
2006-06 本月应还:3799.58 其中本金:3255.54 利息:544.04 累计已还本金:80307.79
2006-07 本月应还:3799.58 其中本金:3269.95 利息:529.64 累计已还本金:83577.74
2006-08 本月应还:3799.58 其中本金:3284.42 利息:515.17 累计已还本金:86862.16
2006-09 本月应还:3799.58 其中本金:3298.95 利息:500.63 累计已还本金:90161.11
2006-10 本月应还:3799.58 其中本金:3313.55 利息:486.04 累计已还本金:93474.65
2006-11 本月应还:3799.58 其中本金:3328.21 利息:471.37 累计已还本金:96802.86
2006-12 本月应还:3799.58 其中本金:3342.94 利息:456.65 累计已还本金:100145.8
2007-01 本月应还:3799.58 其中本金:3357.73 利息:441.85 累计已还本金:103503.53
2007-02 本月应还:3799.58 其中本金:3372.59 利息:427 累计已还本金:106876.12
2007-03 本月应还:3799.58 其中本金:3387.51 利息:412.07 累计已还本金:110263.63
2007-04 本月应还:3799.58 其中本金:3402.5 利息:397.08 累计已还本金:113666.13
2007-05 本月应还:3799.58 其中本金:3417.56 利息:382.03 累计已还本金:117083.68
2007-06 本月应还:3799.58 其中本金:3432.68 利息:366.9 累计已还本金:120516.36
2007-07 本月应还:3799.58 其中本金:3447.87 利息:351.72 累计已还本金:123964.23
2007-08 本月应还:3799.58 其中本金:3463.13 利息:336.46 累计已还本金:127427.36
2007-09 本月应还:3799.58 其中本金:3478.45 利息:321.13 累计已还本金:130905.81
2007-10 本月应还:3799.58 其中本金:3493.84 利息:305.74 累计已还本金:134399.65
2007-11 本月应还:3799.58 其中本金:3509.3 利息:290.28 累计已还本金:137908.95
2007-12 本月应还:3799.58 其中本金:3524.83 利息:274.75 累计已还本金:141433.79
2008-01 本月应还:3799.58 其中本金:3540.43 利息:259.16 累计已还本金:144974.22
2008-02 本月应还:3799.58 其中本金:3556.1 利息:243.49 累计已还本金:148530.31
2008-03 本月应还:3799.58 其中本金:3571.83 利息:227.75 累计已还本金:152102.14
2008-04 本月应还:3799.58 其中本金:3587.64 利息:211.95 累计已还本金:155689.78
2008-05 本月应还:3799.58 其中本金:3603.51 利息:196.07 累计已还本金:159293.29
2008-06 本月应还:3799.58 其中本金:3619.46 利息:180.13 累计已还本金:162912.75
2008-07 本月应还:3799.58 其中本金:3635.47 利息:164.11 累计已还本金:166548.22
2008-08 本月应还:3799.58 其中本金:3651.56 利息:148.02 累计已还本金:170199.78
2008-09 本月应还:3799.58 其中本金:3667.72 利息:131.87 累计已还本金:173867.5
2008-10 本月应还:3799.58 其中本金:3683.95 利息:115.64 累计已还本金:177551.45
2008-11 本月应还:3799.58 其中本金:3700.25 利息:99.33 累计已还本金:181251.7
2008-12 本月应还:3799.58 其中本金:3716.62 利息:82.96 累计已还本金:184968.32
2009-01 本月应还:3799.58 其中本金:3733.07 利息:66.52 累计已还本金:188701.39
2009-02 本月应还:3799.58 其中本金:3749.59 利息:50 累计已还本金:192450.97
2009-03 本月应还:3799.58 其中本金:3766.18 利息:33.4 累计已还本金:196217.15
2009-04 本月应还:3799.58 其中本金:3782.85 利息:16.74 累计已还本金:200000

PL/SQL 过程已成功完成。

SQL> EXEC P_PAY_MONTHLY.P_PAY_AHEAD(TO_DATE('2005-8', 'YYYY-MM'), 100000)

PL/SQL 过程已成功完成。

SQL> EXEC P_PAY_MONTHLY.P_REPORT
贷款总额: 200000
贷款年限: 5
还贷开始日期: 2004-05
2004-05 本月应还:3777.91 其中本金:2937.91 利息:840 累计已还本金:2937.91
2004-06 本月应还:3777.91 其中本金:2950.25 利息:827.66 累计已还本金:5888.17
2004-07 本月应还:3777.91 其中本金:2962.64 利息:815.27 累计已还本金:8850.81
2004-08 本月应还:3777.91 其中本金:2975.09 利息:802.83 累计已还本金:11825.89
2004-09 本月应还:3777.91 其中本金:2987.58 利息:790.33 累计已还本金:14813.48
2004-10 本月应还:3777.91 其中本金:3000.13 利息:777.78 累计已还本金:17813.61
2004-11 本月应还:3777.91 其中本金:3012.73 利息:765.18 累计已还本金:20826.34
2004-12 本月应还:3777.91 其中本金:3025.38 利息:752.53 累计已还本金:23851.72
2005-01 本月应还:3799.58 其中本金:3020.13 利息:779.46 累计已还本金:26871.85
2005-02 本月应还:3799.58 其中本金:3033.49 利息:766.09 累计已还本金:29905.34
2005-03 本月应还:3799.58 其中本金:3046.92 利息:752.67 累计已还本金:32952.26
2005-04 本月应还:3799.58 其中本金:3060.4 利息:739.19 累计已还本金:36012.65
2005-05 本月应还:3799.58 其中本金:3073.94 利息:725.64 累计已还本金:39086.59
2005-06 本月应还:3799.58 其中本金:3087.54 利息:712.04 累计已还本金:42174.14
2005-07 本月应还:3799.58 其中本金:3101.2 利息:698.38 累计已还本金:145275.34
2005-08 本月应还:1343.88 其中本金:1101.72 利息:242.16 累计已还本金:146377.06
2005-09 本月应还:1343.88 其中本金:1106.6 利息:237.28 累计已还本金:147483.66
2005-10 本月应还:1343.88 其中本金:1111.49 利息:232.38 累计已还本金:148595.15
2005-11 本月应还:1343.88 其中本金:1116.41 利息:227.47 累计已还本金:149711.56
2005-12 本月应还:1343.88 其中本金:1121.35 利息:222.53 累计已还本金:150832.91
2006-01 本月应还:1343.88 其中本金:1126.31 利息:217.56 累计已还本金:151959.22
2006-02 本月应还:1343.88 其中本金:1131.3 利息:212.58 累计已还本金:153090.52
2006-03 本月应还:1343.88 其中本金:1136.3 利息:207.57 累计已还本金:154226.82
2006-04 本月应还:1343.88 其中本金:1141.33 利息:202.55 累计已还本金:155368.16
2006-05 本月应还:1343.88 其中本金:1146.38 利息:197.5 累计已还本金:156514.54
2006-06 本月应还:1343.88 其中本金:1151.45 利息:192.42 累计已还本金:157665.99
2006-07 本月应还:1343.88 其中本金:1156.55 利息:187.33 累计已还本金:158822.54
2006-08 本月应还:1343.88 其中本金:1161.67 利息:182.21 累计已还本金:159984.21
2006-09 本月应还:1343.88 其中本金:1166.81 利息:177.07 累计已还本金:161151.01
2006-10 本月应还:1343.88 其中本金:1171.97 利息:171.91 累计已还本金:162322.98
2006-11 本月应还:1343.88 其中本金:1177.16 利息:166.72 累计已还本金:163500.14
2006-12 本月应还:1343.88 其中本金:1182.37 利息:161.51 累计已还本金:164682.51
2007-01 本月应还:1343.88 其中本金:1187.6 利息:156.28 累计已还本金:165870.1
2007-02 本月应还:1343.88 其中本金:1192.85 利息:151.02 累计已还本金:167062.96
2007-03 本月应还:1343.88 其中本金:1198.13 利息:145.75 累计已还本金:168261.09
2007-04 本月应还:1343.88 其中本金:1203.43 利息:140.44 累计已还本金:169464.52
2007-05 本月应还:1343.88 其中本金:1208.76 利息:135.12 累计已还本金:170673.28
2007-06 本月应还:1343.88 其中本金:1214.11 利息:129.77 累计已还本金:171887.38
2007-07 本月应还:1343.88 其中本金:1219.48 利息:124.4 累计已还本金:173106.86
2007-08 本月应还:1343.88 其中本金:1224.88 利息:119 累计已还本金:174331.74
2007-09 本月应还:1343.88 其中本金:1230.3 利息:113.58 累计已还本金:175562.03
2007-10 本月应还:1343.88 其中本金:1235.74 利息:108.14 累计已还本金:176797.77
2007-11 本月应还:1343.88 其中本金:1241.21 利息:102.67 累计已还本金:178038.98
2007-12 本月应还:1343.88 其中本金:1246.7 利息:97.18 累计已还本金:179285.68
2008-01 本月应还:1343.88 其中本金:1252.22 利息:91.66 累计已还本金:180537.9
2008-02 本月应还:1343.88 其中本金:1257.76 利息:86.12 累计已还本金:181795.65
2008-03 本月应还:1343.88 其中本金:1263.32 利息:80.55 累计已还本金:183058.98
2008-04 本月应还:1343.88 其中本金:1268.91 利息:74.96 累计已还本金:184327.89
2008-05 本月应还:1343.88 其中本金:1274.53 利息:69.35 累计已还本金:185602.42
2008-06 本月应还:1343.88 其中本金:1280.17 利息:63.71 累计已还本金:186882.59
2008-07 本月应还:1343.88 其中本金:1285.83 利息:58.04 累计已还本金:188168.42
2008-08 本月应还:1343.88 其中本金:1291.52 利息:52.35 累计已还本金:189459.94
2008-09 本月应还:1343.88 其中本金:1297.24 利息:46.64 累计已还本金:190757.18
2008-10 本月应还:1343.88 其中本金:1302.98 利息:40.9 累计已还本金:192060.16
2008-11 本月应还:1343.88 其中本金:1308.74 利息:35.13 累计已还本金:193368.9
2008-12 本月应还:1343.88 其中本金:1314.53 利息:29.34 累计已还本金:194683.44
2009-01 本月应还:1343.88 其中本金:1320.35 利息:23.53 累计已还本金:196003.79
2009-02 本月应还:1343.88 其中本金:1326.19 利息:17.68 累计已还本金:197329.98
2009-03 本月应还:1343.88 其中本金:1332.06 利息:11.81 累计已还本金:198662.04
2009-04 本月应还:1343.88 其中本金:1337.96 利息:5.92 累计已还本金:200000

PL/SQL 过程已成功完成。

SQL> EXEC P_PAY_MONTHLY.P_CHANGE_RATE(TO_DATE('2006-1', 'YYYY-MM'), 0.0551)

PL/SQL 过程已成功完成。

SQL> EXEC P_PAY_MONTHLY.P_REPORT
贷款总额: 200000
贷款年限: 5
还贷开始日期: 2004-05
2004-05 本月应还:3777.91 其中本金:2937.91 利息:840 累计已还本金:2937.91
2004-06 本月应还:3777.91 其中本金:2950.25 利息:827.66 累计已还本金:5888.17
2004-07 本月应还:3777.91 其中本金:2962.64 利息:815.27 累计已还本金:8850.81
2004-08 本月应还:3777.91 其中本金:2975.09 利息:802.83 累计已还本金:11825.89
2004-09 本月应还:3777.91 其中本金:2987.58 利息:790.33 累计已还本金:14813.48
2004-10 本月应还:3777.91 其中本金:3000.13 利息:777.78 累计已还本金:17813.61
2004-11 本月应还:3777.91 其中本金:3012.73 利息:765.18 累计已还本金:20826.34
2004-12 本月应还:3777.91 其中本金:3025.38 利息:752.53 累计已还本金:23851.72
2005-01 本月应还:3799.58 其中本金:3020.13 利息:779.46 累计已还本金:26871.85
2005-02 本月应还:3799.58 其中本金:3033.49 利息:766.09 累计已还本金:29905.34
2005-03 本月应还:3799.58 其中本金:3046.92 利息:752.67 累计已还本金:32952.26
2005-04 本月应还:3799.58 其中本金:3060.4 利息:739.19 累计已还本金:36012.65
2005-05 本月应还:3799.58 其中本金:3073.94 利息:725.64 累计已还本金:39086.59
2005-06 本月应还:3799.58 其中本金:3087.54 利息:712.04 累计已还本金:42174.14
2005-07 本月应还:3799.58 其中本金:3101.2 利息:698.38 累计已还本金:145275.34
2005-08 本月应还:1343.88 其中本金:1101.72 利息:242.16 累计已还本金:146377.06
2005-09 本月应还:1343.88 其中本金:1106.6 利息:237.28 累计已还本金:147483.66
2005-10 本月应还:1343.88 其中本金:1111.49 利息:232.38 累计已还本金:148595.15
2005-11 本月应还:1343.88 其中本金:1116.41 利息:227.47 累计已还本金:149711.56
2005-12 本月应还:1343.88 其中本金:1121.35 利息:222.53 累计已还本金:150832.91
2006-01 本月应还:1348.32 其中本金:1122.56 利息:225.76 累计已还本金:151955.47
2006-02 本月应还:1348.32 其中本金:1127.72 利息:220.6 累计已还本金:153083.19
2006-03 本月应还:1348.32 其中本金:1132.9 利息:215.43 累计已还本金:154216.09
2006-04 本月应还:1348.32 其中本金:1138.1 利息:210.22 累计已还本金:155354.19
2006-05 本月应还:1348.32 其中本金:1143.32 利息:205 累计已还本金:156497.51
2006-06 本月应还:1348.32 其中本金:1148.57 利息:199.75 累计已还本金:157646.08
2006-07 本月应还:1348.32 其中本金:1153.85 利息:194.48 累计已还本金:158799.93
2006-08 本月应还:1348.32 其中本金:1159.15 利息:189.18 累计已还本金:159959.07
2006-09 本月应还:1348.32 其中本金:1164.47 利息:183.85 累计已还本金:161123.54
2006-10 本月应还:1348.32 其中本金:1169.81 利息:178.51 累计已还本金:162293.36
2006-11 本月应还:1348.32 其中本金:1175.19 利息:173.14 累计已还本金:163468.54
2006-12 本月应还:1348.32 其中本金:1180.58 利息:167.74 累计已还本金:164649.12
2007-01 本月应还:1348.32 其中本金:1186 利息:162.32 累计已还本金:165835.13
2007-02 本月应还:1348.32 其中本金:1191.45 利息:156.87 累计已还本金:167026.57
2007-03 本月应还:1348.32 其中本金:1196.92 利息:151.4 累计已还本金:168223.49
2007-04 本月应还:1348.32 其中本金:1202.41 利息:145.91 累计已还本金:169425.91
2007-05 本月应还:1348.32 其中本金:1207.94 利息:140.39 累计已还本金:170633.84
2007-06 本月应还:1348.32 其中本金:1213.48 利息:134.84 累计已还本金:171847.33
2007-07 本月应还:1348.32 其中本金:1219.05 利息:129.27 累计已还本金:173066.38
2007-08 本月应还:1348.32 其中本金:1224.65 利息:123.67 累计已还本金:174291.03
2007-09 本月应还:1348.32 其中本金:1230.27 利息:118.05 累计已还本金:175521.31
2007-10 本月应还:1348.32 其中本金:1235.92 利息:112.4 累计已还本金:176757.23
2007-11 本月应还:1348.32 其中本金:1241.6 利息:106.72 累计已还本金:177998.83
2007-12 本月应还:1348.32 其中本金:1247.3 利息:101.02 累计已还本金:179246.13
2008-01 本月应还:1348.32 其中本金:1253.03 利息:95.29 累计已还本金:180499.16
2008-02 本月应还:1348.32 其中本金:1258.78 利息:89.54 累计已还本金:181757.94
2008-03 本月应还:1348.32 其中本金:1264.56 利息:83.76 累计已还本金:183022.5
2008-04 本月应还:1348.32 其中本金:1270.37 利息:77.96 累计已还本金:184292.87
2008-05 本月应还:1348.32 其中本金:1276.2 利息:72.12 累计已还本金:185569.07
2008-06 本月应还:1348.32 其中本金:1282.06 利息:66.26 累计已还本金:186851.13
2008-07 本月应还:1348.32 其中本金:1287.95 利息:60.38 累计已还本金:188139.07
2008-08 本月应还:1348.32 其中本金:1293.86 利息:54.46 累计已还本金:189432.93
2008-09 本月应还:1348.32 其中本金:1299.8 利息:48.52 累计已还本金:190732.73
2008-10 本月应还:1348.32 其中本金:1305.77 利息:42.55 累计已还本金:192038.5
2008-11 本月应还:1348.32 其中本金:1311.77 利息:36.56 累计已还本金:193350.27
2008-12 本月应还:1348.32 其中本金:1317.79 利息:30.53 累计已还本金:194668.06
2009-01 本月应还:1348.32 其中本金:1323.84 利息:24.48 累计已还本金:195991.9
2009-02 本月应还:1348.32 其中本金:1329.92 利息:18.4 累计已还本金:197321.82
2009-03 本月应还:1348.32 其中本金:1336.02 利息:12.3 累计已还本金:198657.84
2009-04 本月应还:1348.32 其中本金:1342.16 利息:6.16 累计已还本金:200000

PL/SQL 过程已成功完成。

在重新计算之前,需要清除原有数据:

SQL> EXEC P_PAY_MONTHLY.P_CLEAR

PL/SQL 过程已成功完成。

SQL> EXEC P_PAY_MONTHLY.P_SET_INITIAL(200000, 5, TO_DATE('2004-5', 'YYYY-MM'), 0.0504, 0)

PL/SQL 过程已成功完成。

SQL> EXEC P_PAY_MONTHLY.P_REPORT
贷款总额: 200000
贷款年限: 5
还贷开始日期: 2004-05
2004-05 本月应还:4173.33 其中本金:3333.33 利息:840 累计已还本金:3333.33
2004-06 本月应还:4159.33 其中本金:3333.33 利息:826 累计已还本金:6666.67
2004-07 本月应还:4145.33 其中本金:3333.33 利息:812 累计已还本金:10000
2004-08 本月应还:4131.33 其中本金:3333.33 利息:798 累计已还本金:13333.33
2004-09 本月应还:4117.33 其中本金:3333.33 利息:784 累计已还本金:16666.67
2004-10 本月应还:4103.33 其中本金:3333.33 利息:770 累计已还本金:20000
2004-11 本月应还:4089.33 其中本金:3333.33 利息:756 累计已还本金:23333.33
2004-12 本月应还:4075.33 其中本金:3333.33 利息:742 累计已还本金:26666.67
2005-01 本月应还:4061.33 其中本金:3333.33 利息:728 累计已还本金:30000
2005-02 本月应还:4047.33 其中本金:3333.33 利息:714 累计已还本金:33333.33
2005-03 本月应还:4033.33 其中本金:3333.33 利息:700 累计已还本金:36666.67
2005-04 本月应还:4019.33 其中本金:3333.33 利息:686 累计已还本金:40000
2005-05 本月应还:4005.33 其中本金:3333.33 利息:672 累计已还本金:43333.33
2005-06 本月应还:3991.33 其中本金:3333.33 利息:658 累计已还本金:46666.67
2005-07 本月应还:3977.33 其中本金:3333.33 利息:644 累计已还本金:50000
2005-08 本月应还:3963.33 其中本金:3333.33 利息:630 累计已还本金:53333.33
2005-09 本月应还:3949.33 其中本金:3333.33 利息:616 累计已还本金:56666.67
2005-10 本月应还:3935.33 其中本金:3333.33 利息:602 累计已还本金:60000
2005-11 本月应还:3921.33 其中本金:3333.33 利息:588 累计已还本金:63333.33
2005-12 本月应还:3907.33 其中本金:3333.33 利息:574 累计已还本金:66666.67
2006-01 本月应还:3893.33 其中本金:3333.33 利息:560 累计已还本金:70000
2006-02 本月应还:3879.33 其中本金:3333.33 利息:546 累计已还本金:73333.33
2006-03 本月应还:3865.33 其中本金:3333.33 利息:532 累计已还本金:76666.67
2006-04 本月应还:3851.33 其中本金:3333.33 利息:518 累计已还本金:80000
2006-05 本月应还:3837.33 其中本金:3333.33 利息:504 累计已还本金:83333.33
2006-06 本月应还:3823.33 其中本金:3333.33 利息:490 累计已还本金:86666.67
2006-07 本月应还:3809.33 其中本金:3333.33 利息:476 累计已还本金:90000
2006-08 本月应还:3795.33 其中本金:3333.33 利息:462 累计已还本金:93333.33
2006-09 本月应还:3781.33 其中本金:3333.33 利息:448 累计已还本金:96666.67
2006-10 本月应还:3767.33 其中本金:3333.33 利息:434 累计已还本金:100000
2006-11 本月应还:3753.33 其中本金:3333.33 利息:420 累计已还本金:103333.33
2006-12 本月应还:3739.33 其中本金:3333.33 利息:406 累计已还本金:106666.67
2007-01 本月应还:3725.33 其中本金:3333.33 利息:392 累计已还本金:110000
2007-02 本月应还:3711.33 其中本金:3333.33 利息:378 累计已还本金:113333.33
2007-03 本月应还:3697.33 其中本金:3333.33 利息:364 累计已还本金:116666.67
2007-04 本月应还:3683.33 其中本金:3333.33 利息:350 累计已还本金:120000
2007-05 本月应还:3669.33 其中本金:3333.33 利息:336 累计已还本金:123333.33
2007-06 本月应还:3655.33 其中本金:3333.33 利息:322 累计已还本金:126666.67
2007-07 本月应还:3641.33 其中本金:3333.33 利息:308 累计已还本金:130000
2007-08 本月应还:3627.33 其中本金:3333.33 利息:294 累计已还本金:133333.33
2007-09 本月应还:3613.33 其中本金:3333.33 利息:280 累计已还本金:136666.67
2007-10 本月应还:3599.33 其中本金:3333.33 利息:266 累计已还本金:140000
2007-11 本月应还:3585.33 其中本金:3333.33 利息:252 累计已还本金:143333.33
2007-12 本月应还:3571.33 其中本金:3333.33 利息:238 累计已还本金:146666.67
2008-01 本月应还:3557.33 其中本金:3333.33 利息:224 累计已还本金:150000
2008-02 本月应还:3543.33 其中本金:3333.33 利息:210 累计已还本金:153333.33
2008-03 本月应还:3529.33 其中本金:3333.33 利息:196 累计已还本金:156666.67
2008-04 本月应还:3515.33 其中本金:3333.33 利息:182 累计已还本金:160000
2008-05 本月应还:3501.33 其中本金:3333.33 利息:168 累计已还本金:163333.33
2008-06 本月应还:3487.33 其中本金:3333.33 利息:154 累计已还本金:166666.67
2008-07 本月应还:3473.33 其中本金:3333.33 利息:140 累计已还本金:170000
2008-08 本月应还:3459.33 其中本金:3333.33 利息:126 累计已还本金:173333.33
2008-09 本月应还:3445.33 其中本金:3333.33 利息:112 累计已还本金:176666.67
2008-10 本月应还:3431.33 其中本金:3333.33 利息:98 累计已还本金:180000
2008-11 本月应还:3417.33 其中本金:3333.33 利息:84 累计已还本金:183333.33
2008-12 本月应还:3403.33 其中本金:3333.33 利息:70 累计已还本金:186666.67
2009-01 本月应还:3389.33 其中本金:3333.33 利息:56 累计已还本金:190000
2009-02 本月应还:3375.33 其中本金:3333.33 利息:42 累计已还本金:193333.33
2009-03 本月应还:3361.33 其中本金:3333.33 利息:28 累计已还本金:196666.67
2009-04 本月应还:3347.33 其中本金:3333.33 利息:14 累计已还本金:200000

PL/SQL 过程已成功完成。

 

yangtingkun 发表于:2005.04.24 23:36 ::分类: ( ORACLE ) ::阅读:(63298次) :: 评论 (0)

发表评论
标题

在此添加评论
表情符号: smile laughing tongue angry crying sad wassat wink

称呼

邮箱地址(可选)

个人主页(可选)

 authimage


切换风格
新闻聚合
博客日历
文章归档...
最新发表...
最新评论...
最多阅读文章...
最多评论文章...
博客统计...
Blog信息
网站链接...