the following SQL-Script gives an error while selecting data in a read consistent transaction:

create table x (a number);
insert into x values (0);
set transaction read only;
select * from x;

ORA-01466: unable to read data - table definition has changed

The problem is against Oracle Server 8i, 9, 10g. The client OCI is 9.2. Because 8i, the problem is not related to flashback or automatic undo management. The server system time is also stable.

If I "touch" the table with an "alter table x deallocate unused", the select works. Also sleeping a second after commiting help sometimes. A reconnect before the "set transaction ..." changes nothing!

Any idea?