Почему я получаю этот идентификатор ошибки «процедура» должна быть объявлена ​​Oracle PL / SQL - PullRequest
0 голосов
/ 06 августа 2020

ОБНОВЛЕНО: благодаря @littlefoot я запустил его, но теперь у меня другая проблема: мне выдаются отрицательные числа и конец в поле «Окончательный баланс», когда должно быть указано 0, вот результат, чтобы вы могли видеть, что Я имею в виду. Надеюсь, с помощью полного кода ниже кто-нибудь сможет определить, где возникла ошибка, потому что я не мог ее увидеть.

ОБНОВЛЕНО: Я обнаружил проблему, это был порядок параметров в функции, это было monto NUMBER, plazo НОМЕР, ТАСА ПЛАВАТЬ, когда должно быть МОНТО НОМЕР, ТАСА ПЛАВАТЬ, ПЛАЗО НОМЕР

Спасибо всем за помощь!

User created.


Grant succeeded.


Grant succeeded.


Grant succeeded.

Connected.

Table created.


Table created.


Sequence created.


Function created.


Procedure created.

Enter value for prestamo: 2000000
Enter value for tasa: 12
Enter value for tiempo_en_a±os: 15
Enter value for fecha: 26/jul/19
Enter value for pago_extraordinario: 0
old   2:      amortizacion_proc(&prestamo,&tasa,&tiempo_en_a±os,'&fecha',&Pago_extraordinario);
new   2:      amortizacion_proc(2000000,12,15,'26/jul/19',0);
$30,017.54
ID PrÚstamo: 1

Monto:  $2,000,000.00

Tasa :12%

Plazo :15 A±os

Fecha Prestamo: 06-AGO-20

Fecha Saldo: 06-AGO-35

Pago Extra:         $.00

Cuota Mensual:   $30,017.54


PL/SQL procedure successfully completed.


     PmtNo Fecha     Balance Inici Cuota a pagar Pago extra Total pago    Capital  Intereses Balance Final
---------- --------- ------------- ------------- ---------- ---------- ---------- ---------- -------------
         1 26-AGO-19  2,000,000.00      30017.54          0   30017.54   10017.53      20000    1989982.46
         2 26-SEP-19  1,989,982.46      30017.54          0   30017.54   10117.71   19899.82    1979864.75
         3 26-OCT-19  1,979,864.75      30017.54          0   30017.54   10218.88   19798.64    1969645.86
         4 26-NOV-19  1,969,645.86      30017.54          0   30017.54   10321.07   19696.45    1959324.78
         5 26-DIC-19  1,959,324.78      30017.54          0   30017.54   10424.28   19593.24     1948900.5
         6 26-ENE-20  1,948,900.50      30017.54          0   30017.54   10528.53      19489    1938371.97
         7 26-FEB-20  1,938,371.97      30017.54          0   30017.54   10633.81   19383.71    1927738.15
         8 26-MAR-20  1,927,738.15      30017.54          0   30017.54   10740.15   19277.38       1916998
         9 26-ABR-20  1,916,998.00      30017.54          0   30017.54   10847.55   19169.98    1906150.44
        10 26-MAY-20  1,906,150.44      30017.54          0   30017.54   10956.03    19061.5    1895194.41
        11 26-JUN-20  1,895,194.41      30017.54          0   30017.54   11065.59   18951.94    1884128.82

     PmtNo Fecha     Balance Inici Cuota a pagar Pago extra Total pago    Capital  Intereses Balance Final
---------- --------- ------------- ------------- ---------- ---------- ---------- ---------- -------------
        12 26-JUL-20  1,884,128.82      30017.54          0   30017.54   11176.24   18841.28    1872952.57
        13 26-AGO-20  1,872,952.57      30017.54          0   30017.54      11288   18729.52    1861664.56
        14 26-SEP-20  1,861,664.56      30017.54          0   30017.54   11400.88   18616.64    1850263.67
        15 26-OCT-20  1,850,263.67      30017.54          0   30017.54   11514.89   18502.63    1838748.78
        16 26-NOV-20  1,838,748.78      30017.54          0   30017.54   11630.04   18387.48    1827118.73
        17 26-DIC-20  1,827,118.73      30017.54          0   30017.54   11746.34   18271.18    1815372.38
        18 26-ENE-21  1,815,372.38      30017.54          0   30017.54   11863.81   18153.72    1803508.57
        19 26-FEB-21  1,803,508.57      30017.54          0   30017.54   11982.44   18035.08    1791526.12
        20 26-MAR-21  1,791,526.12      30017.54          0   30017.54   12102.27   17915.26    1779423.84
        21 26-ABR-21  1,779,423.84      30017.54          0   30017.54   12223.29   17794.23    1767200.55
        22 26-MAY-21  1,767,200.55      30017.54          0   30017.54   12345.52      17672    1754855.02

     PmtNo Fecha     Balance Inici Cuota a pagar Pago extra Total pago    Capital  Intereses Balance Final
---------- --------- ------------- ------------- ---------- ---------- ---------- ---------- -------------
        23 26-JUN-21  1,754,855.02      30017.54          0   30017.54   12468.98   17548.55    1742386.03
        24 26-JUL-21  1,742,386.03      30017.54          0   30017.54   12593.67   17423.86    1729792.36
        25 26-AGO-21  1,729,792.36      30017.54          0   30017.54   12719.61   17297.92    1717072.75
        26 26-SEP-21  1,717,072.75      30017.54          0   30017.54    12846.8   17170.72    1704225.94
        27 26-OCT-21  1,704,225.94      30017.54          0   30017.54   12975.27   17042.25    1691250.66
        28 26-NOV-21  1,691,250.66      30017.54          0   30017.54   13105.02    16912.5    1678145.63
        29 26-DIC-21  1,678,145.63      30017.54          0   30017.54   13236.07   16781.45    1664909.56
        30 26-ENE-22  1,664,909.56      30017.54          0   30017.54   13368.43   16649.09    1651541.12
        31 26-FEB-22  1,651,541.12      30017.54          0   30017.54   13502.12   16515.41    1638038.99
        32 26-MAR-22  1,638,038.99      30017.54          0   30017.54   13637.14   16380.38    1624401.85
        33 26-ABR-22  1,624,401.85      30017.54          0   30017.54   13773.51   16244.01    1610628.33

     PmtNo Fecha     Balance Inici Cuota a pagar Pago extra Total pago    Capital  Intereses Balance Final
---------- --------- ------------- ------------- ---------- ---------- ---------- ---------- -------------
        34 26-MAY-22  1,610,628.33      30017.54          0   30017.54   13911.25   16106.28    1596717.08
        35 26-JUN-22  1,596,717.08      30017.54          0   30017.54   14050.36   15967.17    1582666.71
        36 26-JUL-22  1,582,666.71      30017.54          0   30017.54   14190.86   15826.66    1568475.84
        37 26-AGO-22  1,568,475.84      30017.54          0   30017.54   14332.77   15684.75    1554143.07
        38 26-SEP-22  1,554,143.07      30017.54          0   30017.54    14476.1   15541.43    1539666.96
        39 26-OCT-22  1,539,666.96      30017.54          0   30017.54   14620.86   15396.66     1525046.1
        40 26-NOV-22  1,525,046.10      30017.54          0   30017.54   14767.07   15250.46    1510279.02
        41 26-DIC-22  1,510,279.02      30017.54          0   30017.54   14914.74   15102.79    1495364.28
        42 26-ENE-23  1,495,364.28      30017.54          0   30017.54   15063.89   14953.64    1480300.39
        43 26-FEB-23  1,480,300.39      30017.54          0   30017.54   15214.53      14803    1465085.85
        44 26-MAR-23  1,465,085.85      30017.54          0   30017.54   15366.67   14650.85    1449719.18

     PmtNo Fecha     Balance Inici Cuota a pagar Pago extra Total pago    Capital  Intereses Balance Final
---------- --------- ------------- ------------- ---------- ---------- ---------- ---------- -------------
        45 26-ABR-23  1,449,719.18      30017.54          0   30017.54   15520.34   14497.19    1434198.83
        46 26-MAY-23  1,434,198.83      30017.54          0   30017.54   15675.54   14341.98    1418523.29
        47 26-JUN-23  1,418,523.29      30017.54          0   30017.54    15832.3   14185.23    1402690.98
        48 26-JUL-23  1,402,690.98      30017.54          0   30017.54   15990.62    14026.9    1386700.36
        49 26-AGO-23  1,386,700.36      30017.54          0   30017.54   16150.53      13867    1370549.83
        50 26-SEP-23  1,370,549.83      30017.54          0   30017.54   16312.03   13705.49    1354237.79
        51 26-OCT-23  1,354,237.79      30017.54          0   30017.54   16475.15   13542.37    1337762.63
        52 26-NOV-23  1,337,762.63      30017.54          0   30017.54    16639.9   13377.62    1321122.72
        53 26-DIC-23  1,321,122.72      30017.54          0   30017.54    16806.3   13211.22    1304316.42
        54 26-ENE-24  1,304,316.42      30017.54          0   30017.54   16974.37   13043.16    1287342.04
        55 26-FEB-24  1,287,342.04      30017.54          0   30017.54   17144.11   12873.42    1270197.93

     PmtNo Fecha     Balance Inici Cuota a pagar Pago extra Total pago    Capital  Intereses Balance Final
---------- --------- ------------- ------------- ---------- ---------- ---------- ---------- -------------
        56 26-MAR-24  1,270,197.93      30017.54          0   30017.54   17315.55   12701.97    1252882.37
        57 26-ABR-24  1,252,882.37      30017.54          0   30017.54   17488.71   12528.82    1235393.66
        58 26-MAY-24  1,235,393.66      30017.54          0   30017.54   17663.59   12353.93    1217730.06
        59 26-JUN-24  1,217,730.06      30017.54          0   30017.54   17840.23    12177.3    1199889.83
        60 26-JUL-24  1,199,889.83      30017.54          0   30017.54   18018.63   11998.89    1181871.19
        61 26-AGO-24  1,181,871.19      30017.54          0   30017.54   18198.82   11818.71    1163672.37
        62 26-SEP-24  1,163,672.37      30017.54          0   30017.54   18380.81   11636.72    1145291.56
        63 26-OCT-24  1,145,291.56      30017.54          0   30017.54   18564.61   11452.91    1126726.94
        64 26-NOV-24  1,126,726.94      30017.54          0   30017.54   18750.26   11267.26    1107976.67
        65 26-DIC-24  1,107,976.67      30017.54          0   30017.54   18937.76   11079.76     1089038.9
        66 26-ENE-25  1,089,038.90      30017.54          0   30017.54   19127.14   10890.38    1069911.76

     PmtNo Fecha     Balance Inici Cuota a pagar Pago extra Total pago    Capital  Intereses Balance Final
---------- --------- ------------- ------------- ---------- ---------- ---------- ---------- -------------
        67 26-FEB-25  1,069,911.76      30017.54          0   30017.54   19318.41   10699.11    1050593.34
        68 26-MAR-25  1,050,593.34      30017.54          0   30017.54    19511.6   10505.93    1031081.74
        69 26-ABR-25  1,031,081.74      30017.54          0   30017.54   19706.71   10310.81    1011375.02
        70 26-MAY-25  1,011,375.02      30017.54          0   30017.54   19903.78   10113.75     991471.23
        71 26-JUN-25    991,471.23      30017.54          0   30017.54   20102.82    9914.71     971368.41
        72 26-JUL-25    971,368.41      30017.54          0   30017.54   20303.85    9713.68     951064.56
        73 26-AGO-25    951,064.56      30017.54          0   30017.54   20506.88    9510.64     930557.67
        74 26-SEP-25    930,557.67      30017.54          0   30017.54   20711.95    9305.57     909845.71
        75 26-OCT-25    909,845.71      30017.54          0   30017.54   20919.07    9098.45     888926.63
        76 26-NOV-25    888,926.63      30017.54          0   30017.54   21128.26    8889.26     867798.36
        77 26-DIC-25    867,798.36      30017.54          0   30017.54   21339.55    8677.98     846458.81

     PmtNo Fecha     Balance Inici Cuota a pagar Pago extra Total pago    Capital  Intereses Balance Final
---------- --------- ------------- ------------- ---------- ---------- ---------- ---------- -------------
        78 26-ENE-26    846,458.81      30017.54          0   30017.54   21552.94    8464.58     824905.87
        79 26-FEB-26    824,905.87      30017.54          0   30017.54   21768.47    8249.05     803137.39
        80 26-MAR-26    803,137.39      30017.54          0   30017.54   21986.16    8031.37     781151.23
        81 26-ABR-26    781,151.23      30017.54          0   30017.54   22206.02    7811.51     758945.21
        82 26-MAY-26    758,945.21      30017.54          0   30017.54   22428.08    7589.45     736517.12
        83 26-JUN-26    736,517.12      30017.54          0   30017.54   22652.36    7365.17     713864.76
        84 26-JUL-26    713,864.76      30017.54          0   30017.54   22878.88    7138.64     690985.87
        85 26-AGO-26    690,985.87      30017.54          0   30017.54   23107.67    6909.85     667878.19
        86 26-SEP-26    667,878.19      30017.54          0   30017.54   23338.75    6678.78     644539.44
        87 26-OCT-26    644,539.44      30017.54          0   30017.54   23572.14    6445.39      620967.3
        88 26-NOV-26    620,967.30      30017.54          0   30017.54   23807.86    6209.67     597159.44

     PmtNo Fecha     Balance Inici Cuota a pagar Pago extra Total pago    Capital  Intereses Balance Final
---------- --------- ------------- ------------- ---------- ---------- ---------- ---------- -------------
        89 26-DIC-26    597,159.44      30017.54          0   30017.54   24045.94    5971.59      573113.5
        90 26-ENE-27    573,113.50      30017.54          0   30017.54    24286.4    5731.13      548827.1
        91 26-FEB-27    548,827.10      30017.54          0   30017.54   24529.26    5488.27     524297.83
        92 26-MAR-27    524,297.83      30017.54          0   30017.54   24774.55    5242.97     499523.27
        93 26-ABR-27    499,523.27      30017.54          0   30017.54    25022.3    4995.23     474500.97
        94 26-MAY-27    474,500.97      30017.54          0   30017.54   25272.52       4745     449228.45
        95 26-JUN-27    449,228.45      30017.54          0   30017.54   25525.25    4492.28      423703.2
        96 26-JUL-27    423,703.20      30017.54          0   30017.54    25780.5    4237.03     397922.69
        97 26-AGO-27    397,922.69      30017.54          0   30017.54    26038.3    3979.22     371884.38
        98 26-SEP-27    371,884.38      30017.54          0   30017.54   26298.69    3718.84     345585.69
        99 26-OCT-27    345,585.69      30017.54          0   30017.54   26561.67    3455.85     319024.01

     PmtNo Fecha     Balance Inici Cuota a pagar Pago extra Total pago    Capital  Intereses Balance Final
---------- --------- ------------- ------------- ---------- ---------- ---------- ---------- -------------
       100 26-NOV-27    319,024.01      30017.54          0   30017.54   26827.29    3190.24     292196.72
       101 26-DIC-27    292,196.72      30017.54          0   30017.54   27095.56    2921.96     265101.15
       102 26-ENE-28    265,101.15      30017.54          0   30017.54   27366.52    2651.01     237734.63
       103 26-FEB-28    237,734.63      30017.54          0   30017.54   27640.18    2377.34     210094.44
       104 26-MAR-28    210,094.44      30017.54          0   30017.54   27916.59    2100.94     182177.85
       105 26-ABR-28    182,177.85      30017.54          0   30017.54   28195.75    1821.77     153982.09
       106 26-MAY-28    153,982.09      30017.54          0   30017.54   28477.71    1539.82     125504.38
       107 26-JUN-28    125,504.38      30017.54          0   30017.54   28762.49    1255.04      96741.88
       108 26-JUL-28     96,741.88      30017.54          0   30017.54   29050.11     967.41      67691.77
       109 26-AGO-28     67,691.77      30017.54          0   30017.54   29340.61     676.91      38351.15
       110 26-SEP-28     38,351.15      30017.54          0   30017.54   29634.02     383.51       8717.13

     PmtNo Fecha     Balance Inici Cuota a pagar Pago extra Total pago    Capital  Intereses Balance Final
---------- --------- ------------- ------------- ---------- ---------- ---------- ---------- -------------
       111 26-OCT-28      8,717.13      30017.54          0   30017.54   29930.36      87.17     -21213.23
       112 26-NOV-28    -21,213.23      30017.54          0   30017.54   30229.66    -212.13     -51442.89
       113 26-DIC-28    -51,442.89      30017.54          0   30017.54   30531.96    -514.42     -81974.86
       114 26-ENE-29    -81,974.86      30017.54          0   30017.54   30837.28    -819.74    -112812.14
       115 26-FEB-29   -112,812.14      30017.54          0   30017.54   31145.65   -1128.12     -143957.8
       116 26-MAR-29   -143,957.80      30017.54          0   30017.54   31457.11   -1439.57    -175414.91
       117 26-ABR-29   -175,414.91      30017.54          0   30017.54   31771.68   -1754.14     -207186.6
       118 26-MAY-29   -207,186.60      30017.54          0   30017.54    32089.4   -2071.86       -239276
       119 26-JUN-29   -239,276.00      30017.54          0   30017.54   32410.29   -2392.76    -271686.29
       120 26-JUL-29   -271,686.29      30017.54          0   30017.54   32734.39   -2716.86    -304420.69
       121 26-AGO-29   -304,420.69      30017.54          0   30017.54   33061.74    -3044.2    -337482.43

     PmtNo Fecha     Balance Inici Cuota a pagar Pago extra Total pago    Capital  Intereses Balance Final
---------- --------- ------------- ------------- ---------- ---------- ---------- ---------- -------------
       122 26-SEP-29   -337,482.43      30017.54          0   30017.54   33392.35   -3374.82    -370874.79
       123 26-OCT-29   -370,874.79      30017.54          0   30017.54   33726.28   -3708.74    -404601.08
       124 26-NOV-29   -404,601.08      30017.54          0   30017.54   34063.54   -4046.01    -438664.62
       125 26-DIC-29   -438,664.62      30017.54          0   30017.54   34404.18   -4386.64    -473068.81
       126 26-ENE-30   -473,068.81      30017.54          0   30017.54   34748.22   -4730.68    -507817.03
       127 26-FEB-30   -507,817.03      30017.54          0   30017.54    35095.7   -5078.17    -542912.73
       128 26-MAR-30   -542,912.73      30017.54          0   30017.54   35446.66   -5429.12     -578359.4
       129 26-ABR-30   -578,359.40      30017.54          0   30017.54   35801.12   -5783.59    -614160.53
       130 26-MAY-30   -614,160.53      30017.54          0   30017.54   36159.14    -6141.6    -650319.67
       131 26-JUN-30   -650,319.67      30017.54          0   30017.54   36520.73   -6503.19     -686840.4
       132 26-JUL-30   -686,840.40      30017.54          0   30017.54   36885.93    -6868.4    -723726.34

     PmtNo Fecha     Balance Inici Cuota a pagar Pago extra Total pago    Capital  Intereses Balance Final
---------- --------- ------------- ------------- ---------- ---------- ---------- ---------- -------------
       133 26-AGO-30   -723,726.34      30017.54          0   30017.54   37254.79   -7237.26    -760981.14
       134 26-SEP-30   -760,981.14      30017.54          0   30017.54   37627.34   -7609.81    -798608.48
       135 26-OCT-30   -798,608.48      30017.54          0   30017.54   38003.62   -7986.08     -836612.1
       136 26-NOV-30   -836,612.10      30017.54          0   30017.54   38383.65   -8366.12    -874995.76
       137 26-DIC-30   -874,995.76      30017.54          0   30017.54   38767.49   -8749.95    -913763.25
       138 26-ENE-31   -913,763.25      30017.54          0   30017.54   39155.16   -9137.63    -952918.42
       139 26-FEB-31   -952,918.42      30017.54          0   30017.54   39546.71   -9529.18    -992465.14
       140 26-MAR-31   -992,465.14      30017.54          0   30017.54   39942.18   -9924.65    -1032407.3
       141 26-ABR-31 -1,032,407.33      30017.54          0   30017.54    40341.6  -10324.07    -1072748.9
       142 26-MAY-31 -1,072,748.94      30017.54          0   30017.54   40745.02  -10727.48      -1113494
       143 26-JUN-31 -1,113,493.96      30017.54          0   30017.54   41152.47  -11134.93    -1154646.4

     PmtNo Fecha     Balance Inici Cuota a pagar Pago extra Total pago    Capital  Intereses Balance Final
---------- --------- ------------- ------------- ---------- ---------- ---------- ---------- -------------
       144 26-JUL-31 -1,154,646.44      30017.54          0   30017.54   41563.99  -11546.46    -1196210.4
       145 26-AGO-31 -1,196,210.44      30017.54          0   30017.54   41979.63   -11962.1    -1238190.1
       146 26-SEP-31 -1,238,190.08      30017.54          0   30017.54   42399.43   -12381.9    -1280589.5
       147 26-OCT-31 -1,280,589.51      30017.54          0   30017.54   42823.43  -12805.89    -1323412.9
       148 26-NOV-31 -1,323,412.94      30017.54          0   30017.54   43251.66  -13234.12    -1366664.6
       149 26-DIC-31 -1,366,664.61      30017.54          0   30017.54   43684.18  -13666.64    -1410348.8
       150 26-ENE-32 -1,410,348.79      30017.54          0   30017.54   44121.02  -14103.48    -1454469.8
       151 26-FEB-32 -1,454,469.81      30017.54          0   30017.54   44562.23  -14544.69    -1499032.1
       152 26-MAR-32 -1,499,032.05      30017.54          0   30017.54   45007.85  -14990.32    -1544039.9
       153 26-ABR-32 -1,544,039.90      30017.54          0   30017.54   45457.93  -15440.39    -1589497.8
       154 26-MAY-32 -1,589,497.84      30017.54          0   30017.54   45912.51  -15894.97    -1635410.4

     PmtNo Fecha     Balance Inici Cuota a pagar Pago extra Total pago    Capital  Intereses Balance Final
---------- --------- ------------- ------------- ---------- ---------- ---------- ---------- -------------
       155 26-JUN-32 -1,635,410.35      30017.54          0   30017.54   46371.63   -16354.1      -1681782
       156 26-JUL-32 -1,681,781.99      30017.54          0   30017.54   46835.35  -16817.81    -1728617.3
       157 26-AGO-32 -1,728,617.34      30017.54          0   30017.54    47303.7  -17286.17    -1775921.1
       158 26-SEP-32 -1,775,921.05      30017.54          0   30017.54   47776.74  -17759.21    -1823697.8
       159 26-OCT-32 -1,823,697.80      30017.54          0   30017.54   48254.51  -18236.97    -1871952.3
       160 26-NOV-32 -1,871,952.31      30017.54          0   30017.54   48737.05  -18719.52    -1920689.4
       161 26-DIC-32 -1,920,689.37      30017.54          0   30017.54   49224.42  -19206.89    -1969913.8
       162 26-ENE-33 -1,969,913.80      30017.54          0   30017.54   49716.67  -19699.13    -2019630.5
       163 26-FEB-33 -2,019,630.47      30017.54          0   30017.54   50213.84   -20196.3    -2069844.3
       164 26-MAR-33 -2,069,844.31      30017.54          0   30017.54   50715.97  -20698.44    -2120560.3
       165 26-ABR-33 -2,120,560.29      30017.54          0   30017.54   51223.13   -21205.6    -2171783.4

     PmtNo Fecha     Balance Inici Cuota a pagar Pago extra Total pago    Capital  Intereses Balance Final
---------- --------- ------------- ------------- ---------- ---------- ---------- ---------- -------------
       166 26-MAY-33 -2,171,783.43      30017.54          0   30017.54   51735.36  -21717.83    -2223518.8
       167 26-JUN-33 -2,223,518.80      30017.54          0   30017.54   52252.72  -22235.18    -2275771.5
       168 26-JUL-33 -2,275,771.52      30017.54          0   30017.54   52775.25  -22757.71    -2328546.8
       169 26-AGO-33 -2,328,546.77      30017.54          0   30017.54      53303  -23285.46    -2381849.8
       170 26-SEP-33 -2,381,849.78      30017.54          0   30017.54   53836.03  -23818.49    -2435685.8
       171 26-OCT-33 -2,435,685.81      30017.54          0   30017.54   54374.39  -24356.85    -2490060.2
       172 26-NOV-33 -2,490,060.20      30017.54          0   30017.54   54918.13   -24900.6    -2544978.3
       173 26-DIC-33 -2,544,978.34      30017.54          0   30017.54   55467.31  -25449.78    -2600445.7
       174 26-ENE-34 -2,600,445.66      30017.54          0   30017.54   56021.99  -26004.45    -2656467.7
       175 26-FEB-34 -2,656,467.65      30017.54          0   30017.54   56582.21  -26564.67    -2713049.9
       176 26-MAR-34 -2,713,049.86      30017.54          0   30017.54   57148.03  -27130.49    -2770197.9

     PmtNo Fecha     Balance Inici Cuota a pagar Pago extra Total pago    Capital  Intereses Balance Final
---------- --------- ------------- ------------- ---------- ---------- ---------- ---------- -------------
       177 26-ABR-34 -2,770,197.90      30017.54          0   30017.54   57719.51  -27701.97    -2827917.4
       178 26-MAY-34 -2,827,917.41      30017.54          0   30017.54    58296.7  -28279.17    -2886214.1
       179 26-JUN-34 -2,886,214.12      30017.54          0   30017.54   58879.67  -28862.14    -2945093.8
       180 26-JUL-34 -2,945,093.80      30017.54          0   30017.54   59468.47  -29450.93    -3004562.3

180 rows selected.

Весь код такой

--PASO 1, crear el usuario y asignar roles y privilegios

DROP USER amortiz CASCADE;
CREATE USER amortiz IDENTIFIED BY "amortiz";
GRANT CONNECT TO amortiz;
GRANT RESOURCE TO amortiz;
GRANT UNLIMITED TABLESPACE TO amortiz;


--PASO 2, conectarse con el usuario nuevo y crear las tablas

CONNECT amortiz/amortiz;

CREATE TABLE param_amortizacion (
amortiz_id number(10),
monto number(9,2),
tasa number(5,2),
plazo number(3),
fecha_inicio date,
pago_extra number(9,2),
cuota_programada number(9,2),
CONSTRAINT param_amortiz_pk PRIMARY KEY (amortiz_id)
);



CREATE TABLE amortizacion (
ID number(6),
fecha_pago date,
balance_inicial number(9,2),
pago_extra number(9,2),
capital number(9,2),
interes number(9,2),
balance_final number(9,2),
amortiz_id number(10),
CONSTRAINT amortiz_pk PRIMARY KEY (ID),
CONSTRAINT amortiz_fk FOREIGN KEY (amortiz_id) REFERENCES param_amortizacion(amortiz_id)
);





--PASO 3 crear la secuencia

CREATE SEQUENCE amortiz_seq
START WITH 1
INCREMENT BY 1;


--PASO 4, crear la funcion calc_cuota_prog para calcular la cuota programada, parametros a introducir son monto, tasa y plazo

CREATE OR REPLACE FUNCTION calc_cuota_prog (monto NUMBER, plazo NUMBER, tasa FLOAT)
RETURN NUMBER 
IS

cuota_v NUMBER;
m NUMBER;
t NUMBER;
p NUMBER;

BEGIN
m:=monto;
t:=(tasa/12)/100;
p:=plazo*12;
cuota_v:=m*((power(1+t,p)*t)/(power(1+t,p)-1));
DBMS_OUTPUT.PUT_LINE(TO_CHAR(cuota_v, '$9,999,999.99'));
RETURN cuota_v;

END;
    
/  
--PASO 5, crear el procedure amortizacion_proc    


/*
Dicho procedimiento debe hacer lo siguente:

reciba como parámetros de entrada el monto total del préstamo, 
la tasa expresada en %, el plazo del préstamo expresado en años, 
la fecha de inicio del préstamo y si va a realizar un pago extraordinario (0 defecto). 

Esta información guárdela en la tabla param_amortizacion de parámetros del préstamo.

Guarde en la tabla amortizacion las transacciones mensuales de la amortización del préstamo hasta que se termine de pagar el préstamo en el plazo pautado.

Dentro del procedimiento muestre por pantalla los datos generales del préstamo.
*/


    
    
CREATE OR REPLACE PROCEDURE amortizacion_proc (TOTAL NUMBER,TASA NUMBER,PLAZO NUMBER,FECHA_INICIO DATE,PAGO_EXTRA NUMBER) 
IS

MES NUMBER := PLAZO*12;
INTERESES NUMBER;
CAPITAL NUMBER;
INICIO NUMBER := TOTAL;
FINAL1 NUMBER;
AM_ID NUMBER;
PROMEDIO NUMBER :=calc_cuota_prog(TOTAL,TASA,PLAZO);
TASA1 number:=(TASA/12)/100;

BEGIN
INSERT INTO param_amortizacion 
VALUES (amortiz_seq.NEXTVAL,TOTAL,TASA,PLAZO,TO_CHAR(fecha_inicio, 'dd-MON-RR'),pago_extra,PROMEDIO);


FOR i IN 1..MES LOOP
INTERESES := INICIO*TASA1; 
CAPITAL := PROMEDIO-INTERESES;
FINAL1 := INICIO-CAPITAL-pago_extra;
SELECT amortiz_id INTO AM_ID FROM param_amortizacion WHERE ROWNUM = (SELECT MAX(ROWNUM) FROM param_amortizacion);


INSERT INTO amortizacion 
VALUES (i,ADD_MONTHS(TO_CHAR(fecha_inicio,'dd-MON-RR'),i), TRUNC(INICIO,2),pago_extra, TRUNC(CAPITAL, 2), TRUNC(INTERESES, 2), TRUNC(FINAL1, 2), AM_ID);
INICIO := FINAL1;


EXIT WHEN FINAL1 = 0;
END LOOP; 
        
--PASO 6, mostrar datos generales del prestamo dentro del procedure

           DBMS_OUTPUT.PUT_LINE('ID Préstamo: '|| AM_ID||chr(10));
           
           DBMS_OUTPUT.PUT_LINE('Monto: '||TO_CHAR(TOTAL,'$9,999,999.99')||chr(10));
           
           DBMS_OUTPUT.PUT_LINE('Tasa :' ||TASA||'%' ||chr(10));
           
           DBMS_OUTPUT.PUT_LINE('Plazo :' ||PLAZO||' Años' ||chr(10));
           
           DBMS_OUTPUT.PUT_LINE('Fecha Prestamo: '||TO_CHAR(SYSDATE, 'dd-MON-RR')|| chr(10));
           
           DBMS_OUTPUT.PUT_LINE('Fecha Saldo: '||ADD_MONTHS(TO_CHAR(SYSDATE, 'dd-MON-RR'),PLAZO*12)||chr(10));
           
           DBMS_OUTPUT.PUT_LINE('Pago Extra: '||TO_CHAR(0,'$999,999.99')||chr(10));
           
           DBMS_OUTPUT.PUT_LINE('Cuota Mensual: ' ||TO_CHAR(PROMEDIO,'$999,999.99')||chr(10));

END;
   

--PASO 7, llamar al procedure y pedir los datos por pantalla  
 /
 SET SERVEROUTPUT ON  
    BEGIN
     amortizacion_proc(&prestamo,&tasa,&tiempo_en_años,'&fecha',&Pago_extraordinario);
    END;
/

--PASO 8, Hacer un select para el reporte

SELECT v.id "PmtNo", v.fecha_pago "Fecha", TO_CHAR(v.balance_inicial,'9,999,999.99') "Balance Inicial ", c.cuota_programada "Cuota a pagar", c.pago_extra "Pago extra", c.cuota_programada "Total pago",v.capital "Capital",v.interes "Intereses",v.BALANCE_FINAL "Balance Final"
FROM amortizacion v INNER JOIN param_amortizacion c ON v.amortiz_id=c.amortiz_id;

Ответы [ 3 ]

0 голосов
/ 07 августа 2020

Добавьте вверху

USE [DatabseName]
GO

Иногда мы выполняем запрос в неправильной базе данных. Простите меня, если я ошибаюсь.

0 голосов
/ 07 августа 2020

Я обнаружил проблему, это был порядок параметров в функции, это было

НОМЕР monto, НОМЕР plazo, tasa FLOAT

когда это должно быть

НОМЕР monto, tasa FLOAT, plazo NUMBER

0 голосов
/ 07 августа 2020

Выполнение процедуры PL / SQL

Ниже показан синтаксис для выполнения процедуры:

EXECUTE имя_процедуры (аргументы);

Или

EXE C имя_процедуры (аргументы);

https://www.oracletutorial.com/plsql-tutorial/plsql-procedure/

...