- Este tópico contém 5 respostas, 5 vozes e foi atualizado pela última vez 16 anos, 11 meses atrás por
silverwal.
-
AutorPosts
-
13 de abril de 2009 às 10:13 pm #86226
silverwal
ParticipanteOlá Pessoal,
Estou tentando habilitar algumas constraints com o seguinte script;
[b]SET PAGESIZE 1000
SET HEADING OFF
SET LINESIZE 120SPOOL C:SATIenable_constraint.SQL
SELECT ‘ALTER TABLE ‘||’LF.’||TABLE_NAME||’ enable CONSTRAINT ‘||CONSTRAINT_NAME||’;’
FROM DBA_CONSTRAINTS
WHERE OWNER = ‘LF’
AND STATUS = ‘DISABLED’
AND CONSTRAINT_TYPE = ‘R’
/
select instance_name from v$instance;SPOOL OFF
SPOOL C:SATILOG_enable_constraint.LOG
@C:SATIenable_constraint.SQL
select instance_name from v$instance;
SPOOL OFF[/b]mas está acontecendo o seguinte problema abaixo;
ALTER TABLE LF.IN68_DD02 enable CONSTRAINT FK_IN68_DD02_002
*
ERROR at line 1:
ORA-02270: no matching unique or primary key for this column-listALTER TABLE LF.IN68_DD03 enable CONSTRAINT FK_IN68_DD03_001
*
ERROR at line 1:
ORA-02270: no matching unique or primary key for this column-listALTER TABLE LF.IN68_INTIMACAO_FILTROS enable CONSTRAINT FK_IN68_INTIMACAO_FILTROS_001
*
ERROR at line 1:
ORA-02270: no matching unique or primary key for this column-listALTER TABLE LF.IN68_INTIMACAO_TAREFAS enable CONSTRAINT FK_IN68_INTIMACAO_TAREFAS_001
*
ERROR at line 1:
ORA-02270: no matching unique or primary key for this column-listALTER TABLE LF.LF_NF_SAIDA_ITEM_ISS enable CONSTRAINT FK_LF_NF_SAIDA_ITEM_ISS_001
*
ERROR at line 1:
ORA-02298: cannot validate (LF.FK_LF_NF_SAIDA_ITEM_ISS_001) – parent keys not foundalguém pode me ajudar ?
[ ] ‘s
13 de abril de 2009 às 10:19 pm #86227Rodrigo Almeida
ParticipanteVocê habilitou as Primarys Keys das tabelas para realizar a integração?
Tem Primarys Keys não existentes para algumas tabelas, por isso, Parent Key not found.
Para habilitar as constraints, basta habilitar primeiramente as primarys keys e posteriormentes as foreigns keys.
Abraços,
Rodrigo Almeida13 de abril de 2009 às 10:19 pm #86228Ishii
ParticipanteOlá,
1) ORA-02270: no matching unique or primary key for this column-list : Habilite primeiro as Primaries Keys e depois as Foreigns Keys;
2) ORA-02298: cannot validate (LF.FK_LF_NF_SAIDA_ITEM_ISS_001) – parent keys not found :
Tem dados nesta Tabela que não estão na Tabela da Primary Key…Para isso sera necessário uma query e descobrir quais são as linhas faltantes…
Em caso de se haver a necessidade real de habilitar as Constraints sem essa verificação (não recomendável) pode ser utilizado a opção novalidate
[]s Ishii
13 de abril de 2009 às 11:02 pm #86230David Siqueira
ParticipanteFica com esse script ai na manga :
Accep own prompt "Entre com o Owner....:"
accep tbs prompt "Entre com a tabela ...:"set linesize 1000
set pagesize 0
set feedback off
spool enable_constraints.outprompt ---- Check Constraints
select ' alter table '||owner||'.'||table_name||' enable novalidate constraint '||constraint_name||';'
from dba_constraints
where owner like upper(nvl ('%&OWN%',OWNER))
and constraint_type='C'
and status != 'ENABLED'
and table_name like upper(nvl('%&tbs%',TABLE_NAME));prompt ---- Unique Constraints
select ' alter table '||owner||'.'||table_name||' enable novalidate constraint '||constraint_name||';'
from dba_constraints
where owner like upper(nvl ('%&OWN%',OWNER))
and constraint_type='U'
and status != 'ENABLED'
and table_name like upper(nvl('%&tbs%',TABLE_NAME));prompt ---- Primary Constraints
select ' alter table '||owner||'.'||table_name||' enable novalidate constraint '||constraint_name||';'
from dba_constraints
where owner like upper(nvl ('%&OWN%',OWNER))
and constraint_type='P'
and status != 'ENABLED'
and table_name like upper(nvl('%&tbs%',TABLE_NAME));prompt ---- Referential Constraints
select ' alter table '||owner||'.'||table_name||' enable novalidate constraint '||constraint_name||';'
from dba_constraints
where owner like upper(nvl ('%&OWN%',OWNER))
and constraint_type='R'
and status != 'ENABLED'
and table_name like upper(nvl('%&tbs%',TABLE_NAME));spool off
Abraço.
David
13 de abril de 2009 às 11:17 pm #86231Marcio68Almeida
ParticipanteApenas uma observação…
Antes de sair habilitando constraints, verifique as regras de negócio se essas constraints podem ou não ser habilitadas, pode ser que foram desabilitadas por não contemplar alguma funcionalidade da aplicação.
O ideal é verificar sempre as PKs, como foi sugerido pelos nossos colegas, depois verificar as FKs e por último as demais constraints.Mas faça sempre adompanhado do AD.
15 de abril de 2009 às 2:31 am #86260silverwal
ParticipantePode crer Drbs vlw e mesmo, e tbém a todos vocês mas como meu amigo Marcio68Almeida tem razão as constraints não era para ser habilitadas, mas enfim muito obrigado mesmo a todos vocês, o que eu puder ajudar em alguma coisa pode contar comigo tbém!
[ ] ´s All.
-
AutorPosts
- Você deve fazer login para responder a este tópico.