none
Selecionar itens de uma Tabela e Inserir em Outra

    Question

  • Como criar uma Procedure para selecionar os itens da tabela 1 e inserir na tabela 2?

    Valeu!!!


    Junior Santana
    Monday, May 23, 2011 6:20 PM

Answers

  • Junior,

     

    Bom, voce não especificou nada como campos, todo caso, genericamente falando:

     

    CREATE PROCEDURE ProcName

    AS

    BEGIN

    create table ##TempTable (Fields Datatype)

    INSERT INTO ##TempTable SELECT Your Query from source table

    Insert into DestinyTable select * from ##TempTable

    END


    Oracle OCA11g, MCC 2011! Dicas e novidades: www.fabrizziocaputo.wordpress.com
    • Marked as answer by Junior_inc Monday, May 23, 2011 6:57 PM
    Monday, May 23, 2011 6:35 PM
    Moderator

All replies

  • Junior,

     

    Bom, voce não especificou nada como campos, todo caso, genericamente falando:

     

    CREATE PROCEDURE ProcName

    AS

    BEGIN

    create table ##TempTable (Fields Datatype)

    INSERT INTO ##TempTable SELECT Your Query from source table

    Insert into DestinyTable select * from ##TempTable

    END


    Oracle OCA11g, MCC 2011! Dicas e novidades: www.fabrizziocaputo.wordpress.com
    • Marked as answer by Junior_inc Monday, May 23, 2011 6:57 PM
    Monday, May 23, 2011 6:35 PM
    Moderator
  • Boa Tarde,

    Não acho que o uso de tabelas temporárias seja necessário para esse caso. Você só estaria fazendo um cópia provisória para depois descartá-la incorrendo em mais uso do TempDb. Eu faria da seguinte forma:

    CREATE PROCEDURE ProcName
    AS
    BEGIN
    INSERT INTO TabelaDestino (<Campos>)
    SELECT <Campos> FROM TabelaOrigem
    END
    

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    Monday, May 23, 2011 7:50 PM
    Moderator
  • Gustavo,

     

    Sim, não é necessario, é que bom, em meus processos, ainda que no caso utilizando um pouco mais de CPU devido a utilização de tabelas de memoria, eu gosto de ter os dados ja formatados em tabelas separadas....


    Oracle OCA11g, MCC 2011! Dicas e novidades: www.fabrizziocaputo.wordpress.com
    Monday, May 23, 2011 8:13 PM
    Moderator
  • Oi Fabrício,

    Se você for consultar os dados várias vezes e a consulta for muito onerosa, até acho que valha a pena fazer um "staging" para uma tabela temporária. Embora você consumisse mais I/O, você conseguiria economizar CPU não refazendo a mesma consulta várias vezes. Entretanto, para um INSERT SELECT simples eu dispensaria a temporária. Mesmo para "formatar" eu ainda indico o uso de um CTE e não de uma TMP. Mas enfim... Se você achar que encaixa na sua situação...

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    Monday, May 23, 2011 9:07 PM
    Moderator