Jales

Um tempo atrás fiz um script +/- para isso... veja se serve para você
(segue abaixo).
OBS.: Precisaria fazer mais testes. ;)

[ ]

André Santos

-----
-- Conectar com o usuário "owner" do schema
----------------------------------------------------------------------
-- Lista dependências a partir de uma determinada tabela do schema.
----------------------------------------------------------------------
-- OBS.: Nesta versão pode haver repetição na lista de tabelas,
--       ao apresentar cada nível de dependência (uma tabela pode
--       constar novamente, para apresentação de suas dependentes).
----------------------------------------------------------------------

col tabela_filha format a60
col nivel        format 999999

UNDEFINE v_tabela
SET VERIFY OFF
----------------------------------------------------------------------

select
   rpad('=', 30, '=') || '>>'     as tabela_filha,
   i.table_name                   as tabela_mae,
   0                              as nivel,
   null                           as fk,
   i.constraint_name || ' (raiz)' as pk_ref
from user_constraints i
where i.table_name = upper('&&v_tabela')
and i.constraint_type = 'P'
union all
select
   ' ' || rpad( '.', level-1, '.' ) || decode(level,1,'',' ') || tab_filha
as tabela_filha,
   tab_mae as tabela_mae,
   level as nivel,
   fk,
   pk_ref
from
(
  select
     f.table_name        as tab_filha,
     f.constraint_name   as fk,
     f.r_constraint_name as pk_ref,
     p.table_name        as tab_mae
  from user_constraints f
  join user_constraints p
  on p.constraint_name = f.r_constraint_name
  and f.constraint_type = 'R'
  and f.table_name <> upper('&&v_tabela')
)
start with tab_mae = upper('&&v_tabela')
connect by prior tab_filha = tab_mae
-- order by level desc, tab_filha, tab_mae
/
-----



Em 2 de agosto de 2013 16:08, Jales Jose Moraes
<[email protected]>escreveu:

> **
>
>
> Blz milton, o DER de fato eu ja gero. Acontece que ele vem apenas com as
> tabelas que se relacionam diretamente, e eu também precisaria dos
> relacionamentos pais até o seu último nível. Estou usando o power designer
> para isto.
>
> ________________________________
> De: Milton Bastos Henriquis Jr. <[email protected]>
> Para: [email protected]
> Enviadas: Terça-feira, 30 de Julho de 2013 15:10
> Assunto: Re: [oracle_br] Subset
>
>
>
> Gere um DER através de engenharia reversa.
>
> Acredito que até o SQL Developer tenha essa funcionalidade.
>
> 2013/7/30 Jales Jose Moraes <[email protected]>
>
> > **
> >
> >
> > Boa tarde!
> >
> > Pessoal estou precisando fazer um subset de um schema, porém estou
> > esbarrando em restrições das tabelas pais. Bom! É possível extrair do
> > dicionário de dados todas as tabelas pais de um schema? Consegui gerar um
> > sql para trazer as tabelas de outros owner's que o schema referencia,
> > acontece que estas tabelas por sua vez tem suas tabelas pais, ou seja,
> pais
> > de pais, seria então algo recursivo.
> >
> > Alguém pode me dar um auxílio no sentido de obter uma espécie de "árvore"
> > hierárquica de um determinado schema?
> >
> > Seria assim:
> >
> > 1 Subset do schema SMS
> > 2 Schema SMS referencia algumas tabelas do schema FIN, SUS, CPM e RH
> > 3 Schemas referenciados possuem tabelas que referenciam outras tabelas
> > (podendo ser de outro schema ou não) e assim sucessivamente até o último
> > nível de tabelas pais.
> >
> > Tenho observado (manualmente), que o nível de hierarquia é baixo (no
> > máximo até o 3o nível de dependência). Porém para um subset de outros
> > schemas o nível pode ser maior, e facilitaria bastante se conseguisse
> > extrair de forma automazidada esta "árvore".
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> ------------------------------------
>
> ----------------------------------------------------------
> >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
> inteira responsabilidade de seus remetentes.
> Acesse: http://www.mail-archive.com/[email protected]/
> ----------------------------------------------------------
> >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
> Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO!
> VISITE: http://www.oraclebr.com.br/
> ---------------------------------------------------------- Links do Yahoo!
> Grupos
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



------------------------------------

--------------------------------------------------------------------------------------------------------------------------
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/[email protected]/ 
--------------------------------------------------------------------------------------------------------------------------
>Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
>Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
>http://www.oraclebr.com.br/  
------------------------------------------------------------------------------------------------------------------------
 Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [email protected]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a