EDIT: Managed to test it all and I guess my friend was wrong here, thanks for the help, people.
From what I understand the second example (with the alias) is useful when referring to an object type's field. For example, I went ahead and made an object table of managerType called manager with the following attributes:
Name NameType(name VARCHAR2(30), surname VARCHAR2(30),
Address AddressType(First_Line VARCHAR2(30), City VARCHAR2(30), Post_Code VARCHAR2(8),
Salary NUMBER)
Now for this question I needed to retrieve the city of a particular manager, so the following would not work:
SELECT City
FROM Manager
Where name like 'Jim';
However, this did work:
SELECT m.address.city from Manager m
WHERE m.name.f_name LIKE 'Jim' AND m.name.l_name LIKE 'Smith';
There's probably a way I could avoid using the AND operator here, if anyone knows, I'd appreciate it. I hope this helps someone. Thanks.
Original Question
This has been confusing me for a while. I'm doing a past exam paper for revision and for one question I must retrieve the salaries of all managers whose names start with 'J' from a Manager Object table.
I'd normally do the following
SELECT salary
FROM Manager
WHERE name like 'J%';
Now a fellow student has gone and confused me by suggesting that I must use an alias as it's an object table, so it'd be something like:
SELECT m.Salary
FROM Manager m
WHERE name like 'J%';
I know this one is useful for field access in Oracle (say if I had a user defined type in Manager table and wanted to refer to a field in that type) but should I be using it in general?