Pular para o conteúdo
  • Este tópico contém 6 respostas, 4 vozes e foi atualizado pela última vez 17 anos, 1 mês atrás por Avatar photoLeonardo Litz.
Visualizando 7 posts - 1 até 7 (de 7 do total)
  • Autor
    Posts
  • #84997
    Scheidt
    Participante

      Boa tarde pessoal.

      Tenho que criar uma tabela temporária na procedure e em alguns casos manipular os dados da tabela, a minha dúvida é se a cada comando que utiliza o nome da tabela temporária tenho que utilizar o execute immediate?

      Exemplo:

      create procedure proc_teste_temp_table
      is
      begin
      execute immediate ‘create global temporary table tmp_teste(teste_id char(12))on commit preserve rows’;
      insert into tmp_teste values (‘teste’);
      end;

      At.
      Scheidt

      #84998
      Rodrigo Almeida
      Participante

        Sheidt,

        Tu não precisa criar uma tabela temporária toda vez que irá utilziar, não há necessidade de ter o CREATE TABLE dentro da sua procedure. pois a GLOBAL TEMPORARY irá criar toda a estrutura da tabela no seu schema, e toda vez que for utilizar-la basta inserir e manipular os dados, aí tu define se quer permanecer com os dados após o COMMIT na transação ou não.

        Mas não há necessidade de CREATE GLOBAL TABLE toda hora.

        Abraços,
        Rodrigo Almeida

        #85011
        Scheidt
        Participante

          Bom dia Rodrigo.

          A empresa que eu trabalho adiquiriu um produto que foi desenvolvido em Sybase e temos a missão de migrar as procedures para os demais bancos SQL Server/Oracle/Informix, fiquei com a parte de Oracle onde expliquei essa questão que você me passou mas eles querem manter um padrão de criação para todos os bancos para não precisar alterar muito a aplicação.

          Neste caso vai ter sempre no final da execução da procedure um DROP PROCEDURE.

          At.
          Marco

          #85016
          Scheidt
          Participante

            Corrigindo…

            Neste caso vai ter sempre no final da execução da procedure um DROP TABLE.

            #85028
            Marcio68Almeida
            Participante

              Bom…
              Alguns padrões devem ser mantidos, outros eliminados…
              Se você TEM que remover a tabela, vai ter problemas, pois pode estar sendo usada por mim no momento que você quer remover, isso certamente dará problemas…
              Nesse caso, você deve criar tabelas temporárias com nomes distintos, vai transformar o seu sistema em um inforno inadministrável…

              #85042
              Scheidt
              Participante

                Valeu pessoal.

                Obrigado pelos comentários!

                #85189
                Avatar photoLeonardo Litz
                Participante

                  Olá, voce pode tambem criar uma funcao de pipelined e fazer select nela.

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