'adding to variables inside of a oracle procedure

I created a procedure that takes the account number of a user and it returns every transaction they've made plus their running balance. everything works except the balance. The code compiles and runs but nothing shows up in the running balance column of the dbms.output

 CREATE OR REPLACE PROCEDURE print_dett(
    in_account_nbr NUMBER
 )
 IS
     dCount NUMBER;
 BEGIN
 dbms_output.put_line(' Date : transaction amount : balance - For: ' || in_account_nbr);
   FOR r IN(
 SELECT t.tx_nbr, t.tx_date, t.tx_amount, t.tx_type_code, a.balance
 FROM transaction t, account a
 WHERE t.account_nbr = a.account_nbr 
 AND t.account_nbr = in_account_nbr
 ORDER BY tx_date)
 LOOP

IF r.tx_type_code = 'D' OR r.tx_type_code = 'R' THEN
    dCount := dCount + r.tx_amount;
ELSE
    dCount := dCount - r.tx_amount;
END IF;

 dbms_output.put_line(r.tx_date || ' : ' || r.tx_amount || ' : ' || dCount );

 END LOOP;
END;

What can I change in the code so the running balance will actually show up when printed?



Solution 1:[1]

Number variables get initialized with NULL. Your variable dCount is hence null first and adding values doesn't change this.

Initialize it with zero instead:

CREATE OR REPLACE PROCEDURE print_dett(
    in_account_nbr NUMBER
 )
 IS
     dCount NUMBER := 0;
...

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Thorsten Kettner