Question: Create a PL/SQL block using a WHILE LOOP loop to generate a payment schedule for a donor's pledge, which is to be paid monthly in
Create a PL/SQL block using a WHILE LOOP loop to generate a payment schedule for a donor's pledge, which is to be paid monthly in equal increments. Values available for the block are starting payment due date , monthly payment amount, and number of total monthly payments for the pledge. The list that's generated should display a line for each monthly payment showing payment number, due date, payment amount, and total amount paid to date.
Each payment will be 1 line of output displayed on the screen. For each payment made, you need to display the payment number, date due, payment amount and donation balance all on the same line. Format the dollar amounts and dates using the TO_CHAR function before they are displayed. You will utilize the ADD_MONTHS function in your code to determine the next payment date.
This is the partial code I have, please help:
DECLARE num_of_pmt NUMBER(2); pmt_num NUMBER(2); start_date DATE; due_date DATE; mth_pmt_amt NUMBER(8,2); donation_bal NUMBER(8,2); pledge_amt NUMBER(8,2); BEGIN SELECT pledge_amt, pledge_date, pay_months, INTO pledge_amt, start_date, num_of_pmt FROM DD_PLEDGE WHERE IDPLEDGE = &IDPLEDGE; mth_pmt_amt:=(pledge_amt/num_of_pmt); due_date:=start_date; donation_bal:=(pledge_amt-mth_pmt_amt); pmt_num:=0; pmt_num:=pmt_num +1;
due_date:=add_month(due_date,1); dbms_output.put_line('Payment Number: ' || pmt_num || ' Due Date: ' || due_date || ' Payment Amount: $' || mth_pmt_amt || ' Balance: $' || to_char(donation_bal,'$9999.99')); donation_bal:=donation_bal - mth_pmt_amt;
END;
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
