- Este tópico contém 4 respostas, 4 vozes e foi atualizado pela última vez 16 anos, 10 meses atrás por
David Siqueira.
-
AutorPosts
-
20 de maio de 2009 às 9:33 pm #86848
walterjun
ParticipanteBoa tarde pessoal,
procurei aqui no fórum mas não consegui achar, se tiver aqui no fórum por favor me enviem.
Eu queria saber como eu faço pra descobrir se em uma tabela existente(não fui eu quem a criou) há algum índice, chave primária, e chave estrangeira?Desde já Obrigado!
20 de maio de 2009 às 10:04 pm #86850Rodrigo Mesquita
Participantefaça um select na view User_Indexes filtrando pelo nome da tabela
20 de maio de 2009 às 10:09 pm #86851Regis Araujo
ParticipanteFala Walter..
Para verificar quais os indices e a qual tabela ele pertence..
Basta rodar o select abaixo..
SELECT * FROM ALL_INDEXES;
Mas vc quer saber que tipo de indice é este? Se é PK ou FK.. rode o select abaixo…
SELECT * FROM ALL_CONSTRAINTS;
ai vc pode filtrar por Owner ou por CONSTRAINT_TYPE..
onde R quer dizer REFERENCE.. então é uma FK e P quer dizer PRIMARY então.. é uma PK..Abraços..
20 de maio de 2009 às 11:32 pm #86853walterjun
ParticipanteFala aew Thunder_Catz,
pow consegui com os comandos que você me disse mas surgiu outro problema, na tabela all_index não vem me relacionando qual coluna da minha tabela que o índice se referencia.
Tem como eu pegar essa informação?vlw msm Thunder_Catz 😛
20 de maio de 2009 às 11:54 pm #86855David Siqueira
ParticipanteOpa!!..salve todo mundo..
Ai Walter pega esse aqui que te atende:set feed off ver off wrap off recsep off ARRAY 1 lines 150 pages 20000
break on unq on index_name skip 1
col unq format a1 heading 'U'
col index_name format a60 heading 'Nome da Tabela . Nome do Indice' wra
col column_name format a30 heading 'Nome da Coluna' wra
col tipo format a10 heading 'Tipo'
col tamanho format a5 heading 'Tam.'
col nulo format a3 heading 'Nul'
col pos form 999 heading 'Pos.'
accept t prompt "Nome da Tabela ou (Enter)=Todas ...................: "
accept i prompt "Nome do Indice ou (Enter)=Todos ...................: "
accept p prompt "Nome do Usuario ou (Enter)=Todos ou (Enter)=Usuario.: "
--spool lst/indices.lst
select substr(a.uniqueness,1,1) unq, i.table_name||'.'||i.index_name
as index_name, i.column_name,
decode(c.data_type,'NUMBER',decode(c.data_length,0,'LONG','NUMBER'),
c.data_type) tipo,
decode(c.data_type,'NUMBER',to_char(c.data_precision),'DATE',NULL,
to_char(c.data_length))
||decode(c.data_scale,0,null,null,null,','||ltrim(to_char(c.data_scale))) tamanho, decode(c.nullable,'N','Not') nulo
,i.COLUMN_POSITION pos
from all_indexes a, all_tab_columns c, all_ind_columns i
where i.table_owner = c.owner
and upper(i.table_name) = upper(c.table_name)
and upper(i.column_name) = upper(c.column_name)
and i.table_owner like decode(upper('&p'),'ALL','%',null,user,upper('&p'))
and upper(i.table_name) like nvl(upper('&t'),'%')
and i.index_name like nvl(upper('&i'),'%')
and a.owner = i.index_owner
and a.index_name = i.index_name
order by i.index_name, i.column_position;
--spool off
@initAbraço.
David
-
AutorPosts
- Você deve fazer login para responder a este tópico.