Oracle
 sql >> база данни >  >> RDS >> Oracle

SQL Server / Oracle :Частни временни таблици

Както разбрахте, временните таблици на SQL Server и Oracle са коренно различни.

В Oracle глобалните временни таблици са постоянни обекти, които съхраняват временни специфични за сесията (или специфични за транзакцията) данни.

В SQL Server временните таблици са временни обекти, съхраняващи временни данни, като #temp_tables съхраняват данни, които са локални за сесия, а ##temp_tables съхраняват данни, които са глобални. (Никога не съм имал нужда от глобални временни таблици на SQL Server и не знам какъв проблем решават.) Ако #temp_table е създадена в съхранена процедура, тя ще бъде премахната, когато съхранената процедура излезе. В противен случай ще бъде премахнато, когато сесията затвори.

И не, наистина няма начин SQL Server да имитира Oracle. Можете да използвате нормална таблица с допълнителна колона, съхраняваща идентификатор на сесия. Но няма да получите предимствата на временните таблици по отношение на по-малко регистриране. Ще трябва ръчно да изтриете временните данни. И се справете с почистването от преждевременно прекратени сесии.

РЕДАКТИРАНЕ: Друга разлика между Oracle и SQL Server е, че SQL Server позволява DDL да бъде обвит в транзакция с други изрази. Така че, ако трябва да използвате временна таблица като част от по-голяма транзакция, create table #table_name... операторът няма имплицитно да ангажира текущата транзакция като create table израз би в 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. Как мога да се свържа със сървър на Oracle Database 11g чрез ssh тунелна верига (двоен тунел, сървър в мрежата на компанията)?

  2. Въведете голямо съдържание в базата данни на Oracle

  3. UTL_FILE.FREMOVE Пример:Изтриване на файл в Oracle

  4. Най-бързият начин за идентифициране на разликите между две таблици?

  5. Безопасно TO_NUMBER()