produrar e substituir no Oracle

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
emer_rosa
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 29
Registrado em: Sáb, 28 Ago 2010 10:45 am
Localização: Torres-RS
Emerson E. Rosa

alguém pode me ajudar, estou precisando fazer Updates em tabelas de produtos aqui na Empresa, e eu gostaria de fazer isso via codigo que iria facilitar muito, fazer um Select e um Update geral eu sei, até com condição especifica, o que eu queria era o seguinte:

Ex de uma tabela.

codigo produto | descricao | peso | cubagem | estoque

10 | biscoito | 520 | 0,0123 | 2000
11 | massa | 210 | 0,0124 | 2250
12 | sal | 220 | 0,0124 | 2250
13 | feijao | 2 | 0,0124 | 2250
14 | batata | 200 | 0,0124 | 2240
15 | carne | 200 | 0,0124 | 2250
16 | wafer | 200 | 0,0124 | 221
17 | alface | 200 | 0,0124 | 220
18 | cenoura | 200 | 0,0124 | 2250
19 | beterraba | 200 | 0,0124 | 220
20 | abacate | 200 | 0,0124 | 2250
21 | panela | 200 | 0,0124 | 2250



A tabela acima e sp um exemplo, minha batela tem em torno de 4000 itens, com muitas colunas, digamos que eu queira fazer um update de cubagem, onte eu tenha em uma planilha o cod do item e a cubagem, como fazer um cod que produre o cod e troque o campo dele a cubagem?

EX.:

quero um cod que ache os cod 14, 16, e 18 e no 14 coloque cubagem 1,10 no 16 coloque cubagem 1,11, e no 18 coloque cubagem 0,16


14=1,10
16=1,11
18=0,16

Como fazer ele procurar no Campo codigo produto e colocar na ccoluna cubagem seu respectivo valor, lembrando que para cada codigo que ele achar ele vai colocar um valor diferente deperminado abaixo, ai posso exportar e vazer entre virgulas, parenteses, isso seria facil, so que é muito updates de muitos itens, isso agilizaria muito meu trabalho,

Se alguém puder me ajudar eu agradeço, Um Abraço.
burga
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Qui, 26 Nov 2009 1:05 pm
Localização: SP

usa decode

update tabela set cubagem = decode (codigo,14, 1.1, 16, 1.11, 18, 0.16) where cod in (14,16,18);
emer_rosa
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 29
Registrado em: Sáb, 28 Ago 2010 10:45 am
Localização: Torres-RS
Emerson E. Rosa

Obrigado Burga, funcionou, foi muito valido sua ajuda, abraço.
Responder
  • Informação