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.