ola
se for em sp, acho q isso resolve
for select pk, campo1, campo2, etc for tabela
into :pk1, :campo1, :campo2, etc do
begin
chavealterada = pk1 + calculo;
insert into tabela (pk, campo1, campo2, etc )
values (:chavealterada, campo1, campo2, etc);
end;
samuel