Actually, what your script does is update
all rows where to_Char(SV_START_DATE,'YYMMDD') = '060201',
3 million times! No wonder it runs for quite a while...
Try just running this instead:
Code:
begin
Update schema_a.table_a s
set s.SV_START_DATE = to_DATE('060101','YYMMDD')
Where to_Char(SV_START_DATE,'YYMMDD') = '060201';
commit;
end;