sql >> Database >  >> RDS >> Oracle

Wat is het verschil tussen een tijdelijke tabel en een globale tijdelijke tabel in Oracle?

In Oracle is er geen verschil. Wanneer u een tijdelijke tabel in een Oracle-database maakt, is deze automatisch globaal en moet u het sleutelwoord "Globaal" opnemen.

De SQL-standaard, die definieert hoe de term "GLOBAL TIJDELIJKE TABEL" wordt geïnterpreteerd, maakt een LOKAAL of GLOBAAL bereik mogelijk. Dit zou een gebruikersspecifieke tabel (LOCAL) of iedereen (GLOBAL) mogelijk maken. Oracle implementeert alleen de GLOBAL-versie.

De gegevens die u in een Oracle Temporary-tabel plaatst, zijn specifiek voor uw sessie. Dat wil zeggen, alleen u kunt uw gegevens zien, zelfs als er 100 gebruikers zijn die allemaal dezelfde tabel gebruiken, en uw gegevens worden uit de tabel verwijderd wanneer u de verbinding verbreekt (of wanneer u de huidige transactie vastlegt), afhankelijk van de tabelinstellingen.

Vergelijk dit met MS SQL-Server, waar tijdelijke tabellen lokaal zijn. Als u er een maakt, weet niemand behalve u dat uw tijdelijke tabel bestaat. In Oracle zorgt het maken van de tijdelijke tabel ervoor dat iedereen (nou ja iedereen met toegang tot uw schema) de tabel kan zien. Wanneer u zich afmeldt bij uw sessie, wordt de SQL-Server-tabel verwijderd en moet deze opnieuw worden gemaakt voor de volgende sessie. In Oracle is de tijdelijke tabel nu een permanent onderdeel van uw schema, zelfs als de gegevens dat niet zijn.



  1. Is het veilig om ROWID te gebruiken om een ​​rij/record in Oracle te lokaliseren?

  2. MySQL-concepten:sessie versus verbinding

  3. Oracle SQL - bestaat niet - tekenreeks bestaat niet in een zoeklijst

  4. hoe maak je een splitsing op een sql-tabelkolom?