› Fóruns › Banco de dados Oracle › Deletar Tabelas › Deletar Tabelas
Precisei excluir alguns registros, mas eles estavam em uso em outras tabelas, então precisei disso:
SELECT ‘select ”’|| A.TABLE_NAME ||”’ from ‘|| A.OWNER ||’.’|| A.TABLE_NAME ||’ where ‘|| COLUMN_NAME ||’ = 12345;’
FROM dba_constraints a, dba_cons_columns b
WHERE a.constraint_name = b.constraint_name
AND r_constraint_name = ‘XPTO_PK’
onde 12345 = valor que eu precisava excluir
XPTO = nome da contraint, chave da tabela de onde eu deveria excluir os registros, ex: fornecedor_pk, funcionario_pk, etc
Este select vai me dar varios selects, os quais usam a minha constraint.
e depois isso:
SELECT ‘UPDATE ‘|| A.OWNER ||’.’|| A.TABLE_NAME ||’ SET ‘|| COLUMN_NAME ||’ = 12345 WHERE ‘ || COLUMN_NAME || ‘= 54321;’
FROM dba_constraints a, dba_cons_columns b
WHERE a.constraint_name = b.constraint_name
AND r_constraint_name = ‘XPTO_PK’