Oracle
 sql >> Baza danych >  >> RDS >> Oracle

SQL Server / Oracle :Prywatne tabele tymczasowe

Jak już odkryłeś, tabele tymczasowe SQL Server i Oracle różnią się zasadniczo.

W Oracle globalne tabele tymczasowe są stałymi obiektami, które przechowują tymczasowe dane specyficzne dla sesji (lub specyficzne dla transakcji).

W SQL Server tabele tymczasowe są tymczasowymi obiektami przechowującymi dane tymczasowe, przy czym #temp_tables przechowuje dane lokalne dla sesji, a ##temp_tables przechowuje dane globalne. (Nigdy nie potrzebowałem globalnych tabel tymczasowych SQL Server i nie wiem, jaki problem rozwiązują.) Jeśli #temp_table została utworzona w procedurze składowanej, zostanie ona usunięta po zakończeniu procedury składowanej. W przeciwnym razie zostanie on usunięty po zamknięciu sesji.

I nie, naprawdę nie ma sposobu, aby SQL Server naśladował Oracle. Możesz użyć zwykłej tabeli z dodatkową kolumną przechowującą identyfikator sesji. Ale nie uzyskasz korzyści z tabel tymczasowych w odniesieniu do mniejszego rejestrowania. Musisz ręcznie usunąć dane tymczasowe. I zajmij się sprzątaniem po sesjach, które kończą się przedwcześnie.

EDYTUJ: Inną różnicą między Oracle a SQL Server jest to, że SQL Server umożliwia owinięcie DDL w transakcję z innymi instrukcjami. Jeśli więc potrzebujesz użyć tabeli tymczasowej jako części większej transakcji, create table #table_name... instrukcja nie zatwierdzi niejawnie bieżącej transakcji, jak create table oświadczenie byłoby w Oracle.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Procedura składowana Java a procedura składowana PL/SQL

  2. sql (oracle), aby wybrać pierwsze 10 rekordów, potem następne 10 i tak dalej

  3. Grupuj wiele instrukcji SELECT podczas wywoływania Oracle z ADO.NET

  4. Zagnieżdżone funkcje agregujące

  5. Przechowuj duże pliki JSON w Oracle DB