I've just discovered that TOracleObject chokes on mixed case attribute names. The problem is that when you call GetAttr, the interbal call to FindAttr fails, so GetAttr thinks that it needs to call FindMeth, which in turn raises an exception 'Unknown method:'. This is the culprit line/s:
UName := AnsiUpperCase(AttrName);
(fine if it's not mixed case of course)
To demonstrate, execute the following:
create type a_t as object("aA" integer);
create table a (a a_t);
insert into a values(a_t(1));
commit;
Next, execute 'select a from a', then Query.ObjField('a').GetAttr('aA') ....