- Este tópico contém 7 respostas, 2 vozes e foi atualizado pela última vez 17 anos, 2 meses atrás por
ericclauber.
-
AutorPosts
-
23 de dezembro de 2008 às 5:51 pm #84413
ericclauber
ParticipanteBom dia…
Estou tentado fazer um update do campo ‘codcidade’ na “tabala1”, cujo o
o municipio da “tabela1” seja = ‘nomecidade’ da “tabela2”segue select que me trouxe correto.
select pcclient.codcli,pcclient.cliente,pcclient.codcidade,pcclient.municent,
pccidade.nomecidade from pcclient,pccidade where
pcclient.municent=pccidade.nomecidadecodcli- cliente -codcidade – tab1.municent- tab2.nomecidade
23484 ELIZAN PEREIRA – 7 – FORTALEZA – FORTALEZA 22934 RAIMUNDO CAZ – nulo – CASCAVEL – CASCAVELsendo que o update tem que reconhecer o ‘codcidade’ pelo ‘nomecidade’ da “tabela2” e que seja = ‘municipio’ da “tabela1” para atualizar o campo ‘codcidade’ da “tabela1”
geralemte os selects dao certo, mas quando faço o update me enrolo… hehehe.
Agradeço a ajuda.
23 de dezembro de 2008 às 6:03 pm #84416Ishii
ParticipanteOlá,
Segue a receita básica:
update tabela1
set coluna1 = (select coluna2 from tabela2 where chave2=chave1)
where chave1= (select chave2 from tabela2)
[]s Ishii
23 de dezembro de 2008 às 11:08 pm #84431ericclauber
ParticipanteDeu certo, como abaixo, muito obrigado!
update pcclient set codcidade=(select pccidade.codcidade from pccidade where pcclient.municent=pccidade.nomecidade)
Eric Clauber
8 de janeiro de 2009 às 5:15 pm #84584ericclauber
ParticipanteBom dia… precisei fazer novamente o mesmo update acima, e agora nao esta fazendo, ocorre um erro abaixo.
ORA-01427 single-row subquer returns more than one row
Cause: The outer query must use one of yhe keywords ANY, ALL, IN OR NOT IN to specify values to compare because the subquery returned more than one row.
Action: Use ANY, ALL, IN OR NOT IN to specify which values to compare or reword the query so only one row is retrieved.
nao entendi por que isso, antes deu, e agora nao. Espero que me ajudem.
8 de janeiro de 2009 às 5:26 pm #84587Ishii
ParticipanteOlá,
Provavelmente na query:
select pccidade.codcidade from pccidade where pcclient.municent=pccidade.nomecidade
deve estar retornando mais linhas.Veja se com o primeiro exemplo que passei funciona.
[]s Ishii
13 de janeiro de 2009 às 5:19 pm #84683ericclauber
ParticipanteRapaz… ainda nao deu certo, tentei varias formas e nada, mesmo erro.
Voce tem alguma carta na manga? rsrs.
13 de janeiro de 2009 às 5:22 pm #84684Ishii
ParticipanteOlá
Rode apenas o select e veja o retorno. Em algum caso deve estar retornando mais linhas…
[]s Ishii
13 de janeiro de 2009 às 10:11 pm #84702ericclauber
ParticipanteEnfim deu certo… realmente estava retornando mais linhas.
Há outros estados que tem o mesmo nome das cidades, assim apenas acrescentei a condiçao que fizesse somente UF=’CE’
update pcclient set codcidade=(select pccidade.codcidade from pccidade where pcclient.municent=pccidade.nomecidade and pccidade.uf=’CE’)
-
AutorPosts
- Você deve fazer login para responder a este tópico.