ERRO (MULTIPLE ROWS IN SINGLETON SELECT)
ERRO (MULTIPLE ROWS IN SINGLETON SELECT)
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
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
Curtidas 0
Respostas
Webjoel
15/08/2009
Olá!
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.
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
Emerson Nascimento
15/08/2009
se o código foi transcrito exatamente como está no banco de dados, faltou o sinal ´=´ ao setar o valor no primeiro update.
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
Placido
15/08/2009
Bom dia
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
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