...кстати, ошибка не вылетает, если делать так...
Мне странно слышать от Вас сие, сударь.
Иначе ведь и быть не может. Пока Вы не удосужитесь сообщить серверу об изменении структуры данных,
commit после
alter table (a это DDL),
ОНО, то-бишь сервер, не имеет ни малейшего представления какими типами данных (
UPDATE T SET Fnew=Fold) ему манипулировать (это уже DML). Посему мух (DDL) и котлеты (DML) лучше потреблять отдельно, то есть в разных транзакциях, и не зависимо от того на сколько это Вам удобно.