Tabela temporária no Oracle
Fala pessoal!
O assunto de hoje é tabela temporária no Oracle.
As vezes precisamos processar ou armazenar dados temporariamente, ou seja, as vezes é necessário trabalhar com os dados somente naquela sessão, ou somente naquela rotina especifica ou também é necessário você estruturar os dados no meio de uma rotina de integração por exemplo, pra deixar no padrão especifico do seu destino final.
Um outro exemplo de utilização são nas famosas integrações de sistemas, através das tabelas temporárias é possível estruturar os dados pra atender a origem e o destino da informação.
Como o próprio nome já diz uma tabela temporária tem como finalidade de armazenar dos dados por um tempo determinado, ou seja o tempo de uma sessão ou transação, o que quer dizer que assim que a sessão ou transação terminar os dados da tabela são perdidos, ou seja, a tabela será apagada, ela continua a existir no banco de dados, mas ela estará vazia, somente os dados serão apagados.
Resumindo os dados são perdidos assim que encerrar a sessão ou assim que houver um commit ou rollback na transação.
Vamos aos exemplos:
Vamos criar uma tabela temporária somente com dois campos.
1 2 3 4 5 6 |
--> Criando a tabela temporaria create global temporary table TABLE_TEMP ( CODIGO NUMBER, NOME VARCHAR2(10) ); |
Após isso vamos inserir os dados na tabela temporária.
1 2 3 4 5 6 7 8 9 10 11 |
--> Inserindo os dados na tabela. insert into TABLE_TEMP values (1,'Jose'); insert into TABLE_TEMP values (2,'Joao'); insert into TABLE_TEMP values (3,'Maria'); insert into TABLE_TEMP values (4,'Joana'); insert into TABLE_TEMP values (5,'Joaquim'); insert into TABLE_TEMP values (6,'Teresa'); insert into TABLE_TEMP values (7,'Maria Teresa'); insert into TABLE_TEMP values (8,'Maria Cristina'); insert into TABLE_TEMP values (9,'Joao da Silva'); insert into TABLE_TEMP values (10,'Manoel'); |
Agora quando fizermos um select na tabela, verificamos que os dados foram gravados corretamente.
Lembrando que os dados só serão vistos na mesma sessão que foi realizada o insert.
Como a tabela é temporaria os dados só serão vistos e manipulados pela sessão os criou.
1 2 |
--> Verificando os registros na tabela Select * from TABLE_TEMP; |
Após realizar o commit a transação de encerra e os dados serão apagados da tabela.
1 2 3 4 5 |
--> Após encerrar a transação os dados serão perdidos. COMMIT; --> Verificando os registros após o COMMIT: Select * from TABLE_TEMP; |