Primeiramente gostaria de agradecer  a todos pela ajuda porem agora  
estou com outros erros.

entao eu tenho compilado no meu banco os seguintes types. ORACLE 10g
e depois deles o que estou com duvidas .
o que nao consigo compilar , ja olhei varias apostilas e nao consigo
HELP.

///////////////////////////////////////////////////////
drop table usuarios;
drop type object_usuario;
drop type types_tabelas;
drop type object_Tabela;
drop type type_colunas;
drop type object_coluna;
/
CREATE OR REPLACE Type object_Tabela As Object
   ( Table_Name         Varchar2(50)
   , Pct_Free           Number
   , Num_est_lin_ini    number
   , Tx_cresc_ano       number
   , Tempo_dados        number
   , c_Colunas          object_Coluna
   , Constructor function object_Tabela(Var_Username In Varchar2,  
Var_Table In Varchar2)
   return self as result) Not Final;

CREATE OR REPLACE TYPE type_tabelas AS TABLE OF object_tabela;

CREATE OR REPLACE TYPE object_coluna AS OBJECT
   ( Table_name         varchar2(50)
   , column_name        varchar2(50)
   , data_type          varchar2(50)
   , data_length        varchar2(20)
   , tam_medio_col      Number
   , perc_lin           Number
   , vs_null            number
   , vs_precision       number
   ) Not FINAL;

CREATE OR REPLACE TYPE type_colunas AS TABLE OF object_coluna;

CREATE OR REPLACE Type object_Usuario As Object
   ( Nome               Varchar2(30)
   , c_Tabelas          object_Tabela
   , Constructor function object_Usuario(Var_Owner in Varchar2)return  
self as result
       )
  Not Final;

Create Table usuarios of object_Usuario
   Nested Table c_tabelas store as nested_tabela
   (
     Nested Table c_colunas store as nested_coluna
   );
##############################################################################

e Este constructor aki que nao esta compilando ....
Me ajudem por favor ......

CREATE OR REPLACE Type Body object_tabela As
   Constructor function object_tabela(Var_Username In Varchar2,
                                      Var_Table    In Varchar2)
     return self as result

    is

   begin

     self.TABLE_NAME := Var_table;
   insert into table(
     select object_coluna(c.TABLE_NAME,
                          C.COLUMN_NAME,
                          C.DATA_TYPE,
                          C.DATA_LENGTH,
                          --C.data_SCALE,
                          C.NULLABLE,
                          C.DATA_PRECISION)
       from all_TAB_COLUMNS C
      where C.OWNER = Var_Username
        and C.TABLE_NAME = var_Table) -- aki será onde fara a  
comparação do Owner passado por parametro
            Values  
(c.TABLE_NAME,c.COLUMN_NAME,c.DATA_TYPE,c.DATA_LENGTH,null,null,
                    c.NULLABLE,c.DATA_PRECISION);

   return;
end;
end;






As informacoes contidas neste e-mail e nos arquivos anexados podem ser 
informacoes confidenciais ou privilegiadas. Caso voce nao seja o destinatario 
correto, apague o conteudo desta mensagem e notifique o remetente imediatamente.

Responder a