- Este tópico contém 7 respostas, 4 vozes e foi atualizado pela última vez 16 anos, 9 meses atrás por Ishii.
-
AutorPosts
-
31 de março de 2008 às 5:45 pm #81551rogsousapParticipante
Olá pessoal
Tenho duas Tabelas RH r e RegOcorrencia Reg, e gostaria de apagar
todos os registros de ocorrencias que o campo Reg.DTINICOCORR for maior que o campo r.DTDEMISSAO e as tabelas tem em comum o campo
codMatricula.Fiz um select para demonstrar
Select R.nome,R.dtdemissao,RG.DTINICIOOCORR From REGOCORRENCIA RG, RH R WHERE R.codMatricula = RG.codMatricula
AND R.codMatricula='151424' AND RG.DTINICIOOCORR > R.DTDEMISSAONOME DTDEMISSAO DTINICIOOCORR
VALQUIRIA PEREIRA 20070909 20070910
VALQUIRIA PEREIRA 20070909 20070911
VALQUIRIA PEREIRA 20070909 20070912
VALQUIRIA PEREIRA 20070909 20070915
VALQUIRIA PEREIRA 20070909 20070916Mas o meu delete não funciona, onde eu estou errando
delete From REGOCORRENCIA RG, RH R WHERE R.codMatricula = RG.codMatricula
AND R.codMatricula='151424' AND RG.DTINICIOOCORR > R.DTDEMISSAO
[/code][/quote]31 de março de 2008 às 6:08 pm #81552IshiiParticipanteOlá,
Qual a mensagem de erro, se é que ela ocorre?
[]s Ishii
31 de março de 2008 às 6:13 pm #81553leo_jfParticipanteCara,
Se não funciona, qual o erro que é gerado quando vc executa a query?
Passa o erro que fica mais fácil.
Veja as restrições antes de mais nada. PK, FK.
Passa o erro que fica mais facil.31 de março de 2008 às 6:31 pm #81554rogsousapParticipanteO Erro é esse abaixo, o * aparece na ,
delete From REGOCORRENCIA RG, RH R WHERE R.codMatricula = RG.codMatricula
*ERRO na linha 1:
ORA-00933: SQL command not properly ended31 de março de 2008 às 6:35 pm #81555rogsousapParticipanteExecuto a query.
SQL> delete From REGOCORRENCIA RG, RH R WHERE R.codMatricula = RG.codMatricula
2 AND R.codMatricula=’151424′ AND RG.DTINICIOOCORR > R.DTDEMISSAO
3 ;O Erro é esse abaixo.
delete From REGOCORRENCIA RG, RH R WHERE R.codMatricula = RG.codMatricula
*
ERRO na linha 1:
ORA-00933: SQL command not properly ended31 de março de 2008 às 6:39 pm #81556vieriParticipanteNão é erro de lógica …
Isso é problema na sintaxe, verifique se está vindo algum caracter sujo da onde vc está copiando o comando.31 de março de 2008 às 7:28 pm #81560rogsousapParticipanteJá verifiquei e o erro continua o mesmo
Vejam se eu me expressei corretamente,
Eu quero deletar todos os registros da Tabela REGOCORRENCIA que a data de inico seja maior do que a data demissao.
delete From REGOCORRENCIA RG, RH R WHERE R.codMatricula = RG.codMatricula
AND R.codMatricula='151424' AND RG.DTINICIOOCORR > R.DTDEMISSAO
31 de março de 2008 às 7:48 pm #81561IshiiParticipanteOlá,
Tente assim:
delete from REGOCORRENCIA
where codMatricula in (
select R.codMatricula from
REGOCORRENCIA RG, RH R WHERE R.codMatricula = RG.codMatricula
AND R.codMatricula='151424' AND RG.DTINICIOOCORR > R.DTDEMISSAO)
Infelizmente será necessário a subquery…
[]s Ishii -
AutorPosts
- Você deve fazer login para responder a este tópico.