Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> tellme oracle8 object on SqlPlus/Unix
Hi expert!
an interesting case :
create type INDIRIZZO_TY as object
(Via VARCHAR2(50),
Citta VARCHAR2(25),
Prov CHAR(2),
Cap NUMBER);
create type PERSONA_TY as object
(Nome VARCHAR2(25),
Indirizzo INDIRIZZO_TY);
create table CLIENTE
(Cliente_ID NUMBER,
Persona PERSONA_TY);
the objects and the tables have been created correctly. You can see
SQL> select type_name , attr_name from user_type_attrs;
TYPE_NAME ATTR_NAME ------------------------------ ------------------------------ INDIRIZZO_TY VIA INDIRIZZO_TY CITTA INDIRIZZO_TY PROV INDIRIZZO_TY CAP PERSONA_TY NOME PERSONA_TY INDIRIZZO
6 rows selected.
SQL> desc cliente
Name Null? Type ----------------------------------------- -------- ------------------------ ---- CLIENTE_ID NUMBER PERSONA PERSONA_TY
and now, surprised !
SQL> select Persona.Nome from CLIENTE;
select Persona.Nome from CLIENTE
*
ERROR at line 1:
ORA-00904: invalid column name
I should not need the GRANT EXECUTE. Where have I made a mistake? Do you have any advice?
SQL> select persona.* from cliente;
PERSONA(NOME, INDIRIZZO(VIA, CITTA, PROV, CAP))
PERSONA_TY('Rossi', INDIRIZZO_TY('Via 11', 'Milano', 'IT', 11111)) PERSONA_TY('Biagi', INDIRIZZO_TY('Via 11', 'Genova', 'IT', 22222)) PERSONA_TY('Chili', INDIRIZZO_TY('Via 11', 'Milano', 'IT', 33333)) PERSONA_TY('Locatelli', INDIRIZZO_TY('Via 43', 'Genova', 'IT', 77777)) PERSONA_TY('Elena', INDIRIZZO_TY('Via 21', 'Palermo', 'IT', 44444)) PERSONA_TY('Anselmo', INDIRIZZO_TY('Via 21', 'Bologna', 'IT', 44444))
6 rows selected.
Bye Received on Sat Jun 02 2001 - 17:33:25 CDT