Oracle 11g - PL/SQL block - Unable to use a newly added column in subsequent DML begin
   execute immedate 'alter table my_table add new_column varchar2(30)';
   update my_table set new_column=old_column;
end;


Here the update statement fails stating that the new_column is not available in the table. I knew DDLs are implicity committed but just for thoroughness sake, I added an explicit commit statement before the update statement, but the error still exists. Any inputs is much appreciated.
The column does not exist at compile time. Try this:

begin
   execute immediate 'alter table my_table add new_column varchar2(30)';
   execute immediate 'update my_table set new_column=old_column';
end;