Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Qual é a diferença entre uma tabela temporária e uma tabela temporária global no Oracle?


No Oracle não há diferença. Quando você cria uma tabela temporária em um banco de dados Oracle, ela é automaticamente global e você deve incluir a palavra-chave "Global".

O padrão SQL, que define como o termo "GLOBAL TEMPORARY TABLE" é interpretado, permite um escopo LOCAL ou GLOBAL. Isso permitiria uma tabela específica do usuário (LOCAL) ou todos (GLOBAL). A Oracle implementa apenas a versão GLOBAL.

Os dados que você coloca em uma tabela Oracle Temporary são específicos para sua sessão. Ou seja, somente você pode ver seus dados mesmo se houver 100 usuários todos usando a mesma tabela, e seus dados são excluídos da tabela quando você se desconecta (ou quando você confirma a transação atual) dependendo das configurações da tabela.

Compare isso com o MS SQL-Server, onde as tabelas temporárias são locais. Se você criar uma, ninguém além de você saberá que sua tabela temporária existe. No Oracle, criar a tabela temporária permite que todos (bem, todos com acesso ao seu esquema) vejam a tabela. Quando você faz logout de sua sessão, a tabela do SQL-Server é excluída e precisará ser recriada para a próxima sessão. No Oracle, a tabela temporária agora é uma parte permanente de seu esquema, mesmo que os dados não sejam.