Fórum ERRO (MULTIPLE ROWS IN SINGLETON SELECT) #60793
15/08/2009
0
UTILIZO O BANCO DE DADOS FIREBIRD
ESTOU FAZENDO UMA ATUALIZACAO NO CAMPO DESCRICAO DO PRODUTO NA TABLEA PEDITENS
ESTA DANDO O ERRO ACIMA
PERGUNTA O QUE É O ERRO ACIMA ??
COMO RESOLVER O PROBLEMA
COMANDOS DA PROCEDURE
--------------------------------------------------------------------------------
FOR
SELECT
PROD_CODIGO ,
PROD_DESCRICAOPRODUTO
FROM PRODUTO
INTO :vcodigo,
:VDESCRICAOPRODUTO
DO
BEGIN
UPDATE PEDITENS SET PROD_DESCRICAOPRODUTO :VDESCRICAOPRODUTO
WHERE PROD_CODIGO = :vcodigo;
UPDATE notaitens SET PROD_DESCRICAOPRODUTO= :VDESCRICAOPRODUTO
WHERE PROD_CODIGO = :vcodigo;
END
--------------------------------------------------------------------------------
Grato
Plácido
Placido
Curtir tópico
+ 0Posts
17/08/2009
Webjoel
Primeiro de tudo, da próxima vez que você colocar um código na postagem coloque-os entre as tags ´code´, existe um botão pra isso ao redigir a postagem.
Vamos ao seu problema. O erro está informando que em um select que deveria retornar apenas uma linha de registros está retornando mais de uma.
Pelo que vi no código o select da procedure está certo, pois você está usando o comando ´for´, então neste caso o select com problema deve estar em alguma trigger destas tabelas que você está atualizando na procedure, cheque isso e depois nos informe.
Gostei + 0
17/08/2009
Emerson Nascimento
FOR SELECT PROD_CODIGO , PROD_DESCRICAOPRODUTO FROM PRODUTO INTO :vcodigo, :VDESCRICAOPRODUTO DO BEGIN UPDATE PEDITENS SET PROD_DESCRICAOPRODUTO = :VDESCRICAOPRODUTO -- faltava o ´=´ aqui WHERE PROD_CODIGO = :vcodigo; UPDATE notaitens SET PROD_DESCRICAOPRODUTO = :VDESCRICAOPRODUTO WHERE PROD_CODIGO = :vcodigo; END
Gostei + 0
18/08/2009
Placido
Meu amigo Joel muito obrigado pela dica
desbilitei a trigguer que faz uma atualizacao
rodei a procedure e tudo funcionou perfeito.
Muito obrigado
Um abraço
Plácido
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)