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

Глобални временни таблици - SQL Server срещу Oracle

Временните таблици в Oracle са постоянни обекти, които съдържат временни данни, които са локални за сесията. Временните таблици в SQL Server са временни обекти.

  1. В SQL Server глобалната временна таблица съдържа данни, които са видими за всички сесии. „Глобалните временни таблици са видими за всеки потребител и всяка връзка, след като бъдат създадени.“ http://msdn.microsoft.com/en-us/library/ms186986 .aspx
  2. Глобалните временни таблици все още са временни обекти, които не съществуват безкрайно и може да се наложи да бъдат създадени преди употреба. „Глобалните временни таблици... се изтриват, когато всички потребители, които препращат към таблицата, прекъснат връзката с екземпляра на SQL Server.“ http://msdn.microsoft.com/en-us/library/ms186986 .aspx

Намирам, че локална временна таблица или променлива на таблица е най-близка до същата като глобалната временна таблица на Oracle, голямата разлика е, че трябва да я създавате всеки път.

Обикновено, в случай като вашия, стъпка 3, добавяне на редове към временна таблица, ще бъде направена чрез select ... into #temp_table_name .... (еквивалентно на Oracle create table ... as select ... ) http://msdn.microsoft.com/en-us/library/ ms188029.aspx

Освен това не можете да правите следното в съхранена процедура:(псевдокод.)

begin proc
   call another proc to create local temp table.
   use temp table
end proc

Локалните временни таблици се унищожават при връщане от съхранената процедура, която ги е създала.

Актуализация 2014-10-14: Поведението на локалните временни таблици е различно във версията Parallel Data Warehousev на SQL Server. Временните таблици не се премахват при излизане от съхранената процедура, която ги е създала, и вместо това продължават да съществуват до края на сесията. Това поведение се наблюдава на:

select @@version
Microsoft SQL Server 2012 - 10.0.5108.1 (X64) Jun 24 2014 20:17:02 Copyright (c) Microsoft Corporation Parallel Data Warehouse (64-bit) on Windows NT 6.2 <X64> (Build 9200: )


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да накарам SQL*Plus да създава изгледи / таблици с празен ред в средата на оператора за създаване?

  2. Атрибут на съобщение UTL_MAIL, извикващ OWA_UTIL.cellsprint процедура Oracle

  3. Как да вмъкнете данни директно от Excel в базата данни на Oracle

  4. Модел на наблюдател в Oracle

  5. DBCA Създаване на база данни е лошо REMOTE_LISTENER