Bom dia!
Pessoal, alguém pode me ajudar com um pl/sql que transforma um orcamento em pedido?
Para não complicar, tenho uma tabela chamada 'orcamento' com 3 campos: cod_orc, status e cod_item.
No evento status = 'A', devo copiar tudo para uma tabela chamada 'pedido'
At,
Anderson
TRANSFORMA ORCAMENTO EM PEDIDO
-
- Rank: Programador Pleno
- Mensagens: 35
- Registrado em: Sex, 20 Abr 2012 10:51 am
-
- Moderador
- Mensagens: 641
- Registrado em: Seg, 03 Set 2007 3:26 pm
- Localização: Fortaleza - CE
att,
Daniel N.N.
Daniel N.N.
Cara,
O que compõe um pedido???Como é esse pedido??? onde é registrado esse pedido??? quando deve ser feito isso???
Está muito vago ainda amigo. Precisa SABER o que vai fazer para ver como vai se fazer.
O que compõe um pedido???Como é esse pedido??? onde é registrado esse pedido??? quando deve ser feito isso???
Está muito vago ainda amigo. Precisa SABER o que vai fazer para ver como vai se fazer.
-
- Rank: Programador Pleno
- Mensagens: 35
- Registrado em: Sex, 20 Abr 2012 10:51 am
Noctifero,
Assim, para simplificar considere a tabela 'orçamento' com 3 atributos, (cod_orc, status, cd_item)
Tenho uma outra tabela 'pedido', esta tambem com 3 atributos (cod_ped, status, cd_item)
quando eu troco o indicador 'status' na tabela 'orçamento' deve disparar uma trigger que cria um cod_ped (sequencia existente), e copia 'orçamento.cod_item' para 'pedido.cod_item'.
Não sei se consegui passar a idéia...
Att,
Anderson
Assim, para simplificar considere a tabela 'orçamento' com 3 atributos, (cod_orc, status, cd_item)
Tenho uma outra tabela 'pedido', esta tambem com 3 atributos (cod_ped, status, cd_item)
quando eu troco o indicador 'status' na tabela 'orçamento' deve disparar uma trigger que cria um cod_ped (sequencia existente), e copia 'orçamento.cod_item' para 'pedido.cod_item'.
Não sei se consegui passar a idéia...
Att,
Anderson
-
- Moderador
- Mensagens: 641
- Registrado em: Seg, 03 Set 2007 3:26 pm
- Localização: Fortaleza - CE
att,
Daniel N.N.
Daniel N.N.
Pelo que você falou é bem simples.
Desaconselho triggers, só último caso. Se puder fazer no sistema que altera o status do orçamento é o melhor.
Caso trigger ou programa, verificar quando novo valor de status do orçamento for 'A', chamar
um comando de insert:
Desaconselho triggers, só último caso. Se puder fazer no sistema que altera o status do orçamento é o melhor.
Caso trigger ou programa, verificar quando novo valor de status do orçamento for 'A', chamar
um comando de insert:
INSERT INTO PEDIDO(cod_ped, status, cd_item)
VALUES (sequence.nexval,'NEW-WHATEVER', cd_item_orc);
- fsitja
- Rank: OraSauro
- Mensagens: 611
- Registrado em: Seg, 19 Jan 2009 4:29 pm
- Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html
OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html
OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist
Conselho amigo: não faça por trigger. Faça uma procedure contendo a transação.
Trigger oculta a lógica, dificulta a manutenção, gera contornos enormes para mutating trigger (e geralmente falhos e implementados erroneamente e com bugs), e ainda prejudica o desempenho com disparo row-by-row.
Faça uma espécie de API da transação. Como vai ser disparada? O usuário faz uma a uma, em lote ou em background (batch)?
A API pode ser genérica, recebendo um array de códigos a serem transformados em pedidos, e processar em lote fica bem mais eficiente que um a um. Ao final faça o commit.
Trigger oculta a lógica, dificulta a manutenção, gera contornos enormes para mutating trigger (e geralmente falhos e implementados erroneamente e com bugs), e ainda prejudica o desempenho com disparo row-by-row.
Faça uma espécie de API da transação. Como vai ser disparada? O usuário faz uma a uma, em lote ou em background (batch)?
A API pode ser genérica, recebendo um array de códigos a serem transformados em pedidos, e processar em lote fica bem mais eficiente que um a um. Ao final faça o commit.
-
- Rank: Programador Pleno
- Mensagens: 35
- Registrado em: Sex, 20 Abr 2012 10:51 am
fsitja escreveu:Conselho amigo: não faça por trigger. Faça uma procedure contendo a transação.
Trigger oculta a lógica, dificulta a manutenção, gera contornos enormes para mutating trigger (e geralmente falhos e implementados erroneamente e com bugs), e ainda prejudica o desempenho com disparo row-by-row.
Faça uma espécie de API da transação. Como vai ser disparada? O usuário faz uma a uma, em lote ou em background (batch)?
A API pode ser genérica, recebendo um array de códigos a serem transformados em pedidos, e processar em lote fica bem mais eficiente que um a um. Ao final faça o commit.
Bom dia!
fsitja
Será disparado na troca de um indicador na tabela orcamento.
você poderia postar um exemplo baseado na especificação acima?, se não for muito trabalho.
Estou começando agora com PL/SQL e ainda tenho muitas dúvidas e preciso que me mostrem oque é certo para eu analizar e estudar. Ia fazer por trigger se não fosse o Daniel e você me alertarem.
Obrigado,
At,
Anderson
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 13 visitantes