Boa Tarde Miltão,

 é possível sim. Através de operações DML utilizar a cláusula "returning"
para devolver valores antes do commit.

Segue abaixo, alguns links como exemplo:
http://www.oracle-base.com/articles/misc/dml-returning-into-clause.php

https://community.oracle.com/thread/451776

http://www.oracle-developer.net/display.php?id=413

http://www.adp-gmbh.ch/ora/sql/insert_into_x_returning_y.html

Att,
Emerson


Em 30 de maio de 2014 13:51, 'Milton Bastos Henriquis Jr.'
miltonbas...@gmail.com [oracle_br] <oracle_br@yahoogrupos.com.br> escreveu:

>
>
> Olá pessoal!
>
> Tenho mais um probleminha aqui, dessa vez imagino que seja fácil pra
> resolver mas
> não tô conseguindo visualizar a solução.
>
> Imaginem duas tabelas:
>
> 1 - Itens da nota
>
> 2 - Expedição
>
> Na tabela 1 é a típica tabela de itens... ela tem uma FK para a tabela de
> Notas.
>
> ITENS_DA_NOTA
> ID (sequencial)
> NOTA_ID (FK pra nota)
> PRODUTO_ID
> Quantidade
>
> A tabela 2 é do sistema de gerenciamento do armazém.
> Ao processar as notas, tenho alguns casos em que os produtos devem ser
> AGRUPADOS independente de qual nota seja.
>
> Por isso, na hora de inserir na tabela de expedição eu faço mais ou menos
> isso:
>
> INSERT into expedicao
> (...
> ...)
> select produto_id,
> sum(quantidade)
> from itens_da_nota
> group by produto_id;
>
> Até aí beleza.... o problema é que depois dessas expedições serem
> processadas
> eu preciso DEVOLVER pra outra tabela um espelho da tabela de itens da nota,
> com a quantidade de produtos atendidos, mantendo inclusive aquele ID do
> item da nota.
>
> Com isso nós criamos um campo novo na tabela ITENS_DA_NOTA. Vamos supor
> que o nome desse campo seja EXP_ID. Assim, quando fizer o agrupamento
> acima,
> eu quero gravar os IDs desses registros novos da expedição nos registros
> dos itens da nota.
>
> É possível recuperar o  IDs da EXPEDIÇAO pra gravá-los na própria tabela
> de ITENS_DA_NOTA
> quando eu faço o insert acima?
>
>
> Imagino que tenha ficado bem confuso... conseguiram entender?
> Alguma idéia de como fazer isso em PL/SQL?
>
>
>   
>
  • [oracle... 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br]
    • Re... Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
      • ... 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br]
        • ... jlchia...@yahoo.com.br [oracle_br]
          • ... 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br]
            • ... jlchia...@yahoo.com.br [oracle_br]
            • ... Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
              • ... 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br]
                • ... 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br]
                • ... 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br]
                • ... flavio_brune...@yahoo.com [oracle_br]
                • ... 'Milton Bastos Henriquis Jr.' miltonbas...@gmail.com [oracle_br]

Responder a