Pular para o conteúdo
  • Este tópico contém 2 respostas, 3 vozes e foi atualizado pela última vez 9 anos, 1 mês atrás por Avatar de Marco BorgesMarco Borges.
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #107712
    Avatar de Renato TeixeiraRenato Teixeira
    Participante

      Boa Tarde amigos,

      Sou iniciante em oracle e gostaria de saber como fazer um update em varias linhas, segue um exemplo:

      UPDATE USUARIO
      SET CD_SETOR IN (1,2,3,4,5,6)
      WHERE CD_ID_USUARIO = ‘JOAOSILVA’

      Sei que está errado, mas a ideia é essa. Tenho 124 setores aqui e não queria fazer linha por linha, pois vários usuários terão que receber todos os setores.

      #107727
      Avatar de Renato José Correia LimaRenato José Correia Lima
      Participante

        Bom dia,

        Não ficou claro, este campo ele é concatenado?
        CD_SETOR = ‘1,2,3,4,5,6,7…’ ou por linha.

        Se for por linha você pode fazer insert com um select fazendo um produto cartesiano das tabelas de usuarios e setores.

        Att.

        #107764
        Avatar de Marco BorgesMarco Borges
        Participante

          Mesmo não claro, penso que também fica bom assim.
          1º forma

          Faz um select com o campo chave de ligação nesta sua tabela. com tudo que é “where” que pode colocar para garantir que vai retornar somente e exclusivamente os dados que voce quer.

          Após isto faz assim:

          update tua_tabela set campo1=blablabla where cod_tuatabela in
          (
          select cod_ligacao from tabela where 1 and 2 and 3
          )

          ——————

          2º forma
          create or replace procedure teste is

          CURSOR c1

          IS

          select campo1,campo2,campo3…. from tua_tabela ;

          BEGIN

          FOR x IN c1

          LOOP

          update usuario set cd_setor=x.campo1 where usuario.outrocampo=x.campo2 e assim por diante ;

          END LOOP;
          commit;
          END;

        Visualizando 3 posts - 1 até 3 (de 3 do total)
        • Você deve fazer login para responder a este tópico.
        plugins premium WordPress