Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> tellme oracle8 object on SqlPlus/Unix

tellme oracle8 object on SqlPlus/Unix

From: Reva <reva.lewis_at_tiscalinet.it>
Date: Sun, 3 Jun 2001 00:33:25 +0200
Message-ID: <9fbp59$j8h$1@lacerta.tiscalinet.it>

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

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US