Hi all,
this is the code(no sintax error):

Code:
1)CREATE type Visita_ty 

2)CREATE TYPE COLL_REF_VISITA_TY AS TABLE OF REF VISITA_TY


3)CREATE TYPE Dipendente_ty AS OBJECT
 (
    Nome VARCHAR2(20),
    Cognome VARCHAR2(20),
    Cf VARCHAR2(20),
    DataN Date

 ) NOT FINAL



4)CREATE TYPE Amministrativo_ty UNDER Dipendente_ty 
   (
   Livello NUMBER,
   Mansione VARCHAR(20)
   )FINAL



5)CREATE  TYPE Medico_ty UNDER Dipendente_ty
   (
  Specialita VARCHAR(20),
  FaVisita Coll_Ref_Visita_ty,
  Reparto VARCHAR(20),
  MEMBER PROCEDURE AddVisita (CF VARCHAR2,Data DATE,Tipo VARCHAR2,Ticket Number)
  )FINAL

6)CREATE TYPE Paziente_ty AS OBJECT
 (
   CF VARCHAR2(16),
   NOME VARCHAR2(20),
   COGNOME VARCHAR2(20),
   FaVisita Coll_Ref_Visita_ty
 )

7)CREATE type Visita_ty AS OBJECT (
    Tipo VARCHAR(20),
    Data DATE,
    Ticket number,
    Paziente REF Paziente_ty,
    Medico   REF Medico_ty
    )
8)CREATE TYPE BODY Medico_ty is 
      MEMBER PROCEDURE AddVisita(CF VARCHAR,Data DATE, Tipo VARCHAR,Ticket 
                                                                  number) is
      DECLARE
          Visita Visita_ty;
          RefPaziente REF Paziente_ty;
      BEGIN
          SELECT REF(P) INTO REFPAZIENTE
          FROM Paziente_TAB P
          WHERE P.CF=CF
          VISITA :=Visita_ty(Data,Tipo,Ticket,RefPaziente,REF(SELF))
          INSERT INTO Visita_TAB values Visita
         INSERT INTO TABLE (SELF.FaVisita) VALUES REF(Visita)
          INSERT INTO TABLE (SELECT P.FaVisita
                         FROM PAZIENTE_TAB P
                         WHERE P.CF=CF ) VALUES REF(VISITA)
      END

9)CREATE TABLE Paziente_TAB OF Paziente_ty
    (CF PRIMARY KEY)
     NESTED TABLE FaVisita
               STORE AS PazienteFaVisita_TAB

10)CREATE TABLE Dipendente_TAB OF Dipendente_ty
       (CF PRIMARY KEY) 
       NESTED TABLE TREAT(OBJECT_VALUE AS medico_ty).FaVisita STORE AS visite_tab

11)CREATE TABLE Visita_TAB OF Visita_ty
         (Paziente SCOPE IS Paziente_TAB,
          Medico    SCOPE IS Dipendente_TAB)    

// some insert

INSERT INTO PAZIENTE_TAB (nome,cognome,cf,favisita)
VALUES('rosario','brescia','ros80lit04edk19f',Coll_Ref_Visita_ty())

INSERT INTO PAZIENTE_TAB (nome,cognome,cf,favisita)
VALUES('antonio','rosato','ant80lit04edk19f',Coll_Ref_Visita_ty())

INSERT INTO dipendente_tab values(medico_ty( 'rosario','manfredoina','rosak2442jk3','10-feb-1960','psicologia',
coll_ref_visita_ty(),'psi1'))

INSERT INTO dipendente_tab values(medico_ty( 'manuele','doria','fafasd32442jk3','10-gen-1970','chirurgia',coll_ref_visita_ty(),'chi1'))
I want at this point call the member procedure AddVisita of one row where the object is a medico_ty in dipendente_tab

(gettin the row like this (think)

select treat(value(d) as medico_ty) d

from dipendente_tab d

where d.cf=constant )


for fill a row of visita_tab and the nested table in
paziente_tab(FaVisita) and dipendente_tab where dipendente is of
medico_ty (FaVisita).

Like this d.AddVisita(par1,par2,par3,par4), is possible? how to make it?



Thx for the help.