SQL PLUS - encontrar tabelas

Oracle

13/12/2012

Quando eu clico com o botão direito do mouse sobre uma tabela e clico em "VIEW", aparece algumas informações sobre a tabela, tais como: informações gerais, colunas, chaves (primárias e estrangeiras), etc.

Qual minha dúvida?

Tenho uma tabela chamada "CPR_CADMATERIALAVULSO" e preciso saber em quais outras tabelas, a chave primária da CPR_CADMATERIALAVULSO se relaciona.

Tem algum código ou maneira de se saber isso?

Desde já, agradeço a atenção.

Atenciosamente,
Flavio Silva

Flavio Silva

Curtidas 0

Respostas

Flavio Silva

Flavio Silva

13/12/2012

Pessoal, fiz um script mais ou menos assim, porém não me retornou nada.

SELECT f.owner,
f.table_name,
f.constraint_name
FROM all_constraints f
WHERE (f.r_owner, f.r_constraint_name) IN 
(
      SELECT p.owner,
             p.constraint_name
      FROM all_constraints p
      WHERE p.owner = upper('globus')
      AND p.table_name = upper('Cpr_Cadmaterialavulso')
);
GOSTEI 0
Jair N.

Jair N.

13/12/2012

Acredito que o que você está querendo seria algo parecido com:

SELECT user_cons_csc.constraint_name AS nome_chave
, CAST(CASE WHEN (user_constraints.constraint_type = 'P')
THEN user_constraints.constraint_type
ELSE 'F' END AS CHAR(1)) AS tipo_chave
, CAST(CASE WHEN (user_constraints.constraint_type = 'P')
THEN user_constraints.table_name
ELSE user_cons_cfc.table_name END AS VARCHAR2(50)) AS nome_table
, user_cons_csc.column_name AS org_campos
, user_cons_cfc.column_name AS dst_campos
FROM user_constraints
INNER JOIN user_cons_columns user_cons_csc
ON (user_cons_csc.owner = user_constraints.owner)
AND (user_cons_csc.table_name = user_constraints.table_name)
AND (user_cons_csc.constraint_name = user_constraints.constraint_name)
LEFT JOIN user_cons_columns user_cons_cfc
ON (user_cons_cfc.owner = user_constraints.r_owner)
AND (user_cons_cfc.position = user_cons_csc.position)
AND (user_cons_cfc.constraint_name = user_constraints.r_constraint_name)
WHERE (user_constraints.table_name = UPPER('<nome_da_sua_tabela_principal>'))
AND (user_constraints.constraint_type IN ('P','R'))
ORDER BY user_constraints.constraint_type
, user_constraints.constraint_name
, user_cons_csc.position

Pessoal, fiz um script mais ou menos assim, porém não me retornou nada.

SELECT f.owner,
f.table_name,
f.constraint_name
FROM all_constraints f
WHERE (f.r_owner, f.r_constraint_name) IN 
(
      SELECT p.owner,
             p.constraint_name
      FROM all_constraints p
      WHERE p.owner = upper('globus')
      AND p.table_name = upper('Cpr_Cadmaterialavulso')
);
GOSTEI 0
POSTAR