Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

bulldog

ORA-01407: Update comparando e buscando dados outra tabela

Recommended Posts

Olá companheiros profissionais,

 

Tenho duas tabelas cliente e pedido, hoje alterei na tabela cliente as praças de alguns clientes e quero atualizar a tabela pedido de acordo com a tabela cliente, exemplo:

 

pcpedc = tabela de pedido
pcclient = tabela de cliente

 

update pcpedc set pcpedc.codpraca = (select (pcclient.codpraca) from pcclient where pcpedc.codcli=pcclient.codcli)

 

Mas infelizmente retorna uma erro: ORA-01407: cannot update ("MEDALHA"."PCPEDC"."CODPRACA") to NULL..., este erro me diz que estou tentando inserir um valor null no campo pcpedc.codpraca, mas fazendo um select na tabela de cliente e pedido nao vejo ou nao consigo encontrar este campo null.

 

Onde esta o erro? O que será o problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta query retorna nulo em alguma condição

 

select (pcclient.codpraca) 
from pcclient 
where pcpedc.codcli=pcclient.codcli

 

A solução depende se pcpedc.codpraca pode ser nulo ou não.

 

Talvez a tabela pcclient tenha de ser corrigida antes.

 

Uma solução seria :

 

update pcpedc 
set pcpedc.codpraca = (select (pcclient.codpraca) 
                      from pcclient 
                      where pcpedc.codcli=pcclient.codcli
                      and   pcclient.codpraca is not null)

 

mas vai resolver a query, não sei se resolve o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.