Ir para conteúdo

Arquivado

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

BUANA

Erro em update

Recommended Posts

Amigos, se vocês puderem me ajudar agradeco muito. tenho a seguinte situação : tabela : cust ( cust_id,alig_id) tmp_gm2(cust_id,alig_id,geog_id) tmp_br (br_id,geog_id) preciso fazer um update na tabela cust, no campo (alig_id) quando existir um geog_id igual entre as tabelas tmp_gm2 e tmp_br. eu ja fiz de varias formas mais nenhuma funcionou, em um caso apenas foi feito o update, porem em todas as linhas ao inves da linha especifica. segue a query.UPDATE TMP_CUST_ALIG T SET T.ALIGNMENT_ID=(SELECT B.ALIGNMENT_ID FROM TMP_GP3 G INNER JOIN BRICK_TER B ON(G.GEOGRAPHY_CODE=B.GEOGRAPHY_CODE) INNER JOIN TMP_CUST_ALIG T ON (T.ALIGNMENT_ID=G.ALIGNMENT_ID) WHERE T.CUSTOMER_ID=G.CUSTOMER_ID)Agradeco desde já.Roberto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos, se vocês puderem me ajudar agradeco muito. tenho a seguinte situação : tabela : cust ( cust_id,alig_id) tmp_gm2(cust_id,alig_id,geog_id) tmp_br (br_id,geog_id) preciso fazer um update na tabela cust, no campo (alig_id) quando existir um geog_id igual entre as tabelas tmp_gm2 e tmp_br. eu ja fiz de varias formas mais nenhuma funcionou, em um caso apenas foi feito o update, porem em todas as linhas ao inves da linha especifica. segue a query.UPDATE TMP_CUST_ALIG T SET T.ALIGNMENT_ID=(SELECT B.ALIGNMENT_ID FROM TMP_GP3 G INNER JOIN BRICK_TER B ON(G.GEOGRAPHY_CODE=B.GEOGRAPHY_CODE) INNER JOIN TMP_CUST_ALIG T ON (T.ALIGNMENT_ID=G.ALIGNMENT_ID) WHERE T.CUSTOMER_ID=G.CUSTOMER_ID)Agradeco desde já.Roberto.

PESSOAL O ERRO QUE ESTA OCORRENDO É O SEGUINTE :The following error has occurred:ORA-01427: single-row subquery returns more than one rowABRAÇOS.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu SELECT está retornando várias linhas, só para testar faça isso:

 

UPDATE TMP_CUST_ALIG T SET T.ALIGNMENT_ID=(	   SELECT B.ALIGNMENT_ID	   FROM TMP_GP3 G 	   INNER JOIN BRICK_TER B ON(G.GEOGRAPHY_CODE=B.GEOGRAPHY_CODE)	   INNER JOIN TMP_CUST_ALIG T ON (T.ALIGNMENT_ID=G.ALIGNMENT_ID)	   WHERE ROWNUM<2 AND T.CUSTOMER_ID=G.CUSTOMER_ID)

Agora, verifique se executou normalmente.

 

Abraços, http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu SELECT está retornando várias linhas, só para testar faça isso:

UPDATE TMP_CUST_ALIG T SET T.ALIGNMENT_ID=(	   SELECT B.ALIGNMENT_ID	   FROM TMP_GP3 G 	   INNER JOIN BRICK_TER B ON(G.GEOGRAPHY_CODE=B.GEOGRAPHY_CODE)	   INNER JOIN TMP_CUST_ALIG T ON (T.ALIGNMENT_ID=G.ALIGNMENT_ID)	   WHERE ROWNUM<2 AND T.CUSTOMER_ID=G.CUSTOMER_ID)
Agora, verifique se executou normalmente. Abraços, http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif
Rodrigo, muito obrigado pela força, o que você passou resolvel, me desculpe pela demora em responder, mas tava no meio de um projeto. valeu mesmo. obrigado.Roberto.

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.