Stack Exchange
values in the table are not being replaced by new ones using update in plsql
 create or replace procedure procWithRecord is

--the procedure is not working
--if the procedure is replaced by declare the program works fine
 type cust_record is record (ID client.ID%type,firstname client.firstname%type,lastname client.lastname%type);
 type acc_record is record (ID account.ID%type,balance account.balance%type,accounttype account.accounttype%type);
 type cust_acct_record is record(client cust_record,account acc_record);
 cust_acct_record1 cust_acct_record;
 cust_acct_record2 cust_acct_record;
 cust_acct_record3 cust_acct_record;
 begin
 cust_acct_record1.account.ID:=16603;
 cust_acct_record1.account.balance:=30000;
 cust_acct_record2.account.ID:=16604;
 cust_acct_record2.account.balance:=40000;
 cust_acct_record3.account.ID:=16605;
 cust_acct_record3.account.balance:=50000;
 update account
 set balance=cust_acct_record1.account.balance where ID=16603;
 update account
 set balance=cust_acct_record2.account.balance where ID=16604;
 update account
 set balance=cust_acct_record3.account.balance where ID=16605;
 end;


Are you executing the procedure and select query to verify the records from the same window? I make an assumption for you say anonymous block is working but not procedure, it may be a problem of missing commit in the block.
