2013-06-27 12 views
6

Jak zaprojektować tabelę w Oracle 11g, aby później była kompatybilna z nową funkcją "Ważność temporalna" " w Oracle 12c?Jak korzystać z czasowej poprawności w Oracle 12c?

Dokumentacja online Oracle 12c określa, w jaki sposób zdefiniować ważność czasową inthe podręczniku SQL Język (http://docs.oracle.com/cd/E16655_01/server.121/e17209/statements_7002.htm#CJADHJHB)

ALTER TABLE my_table ADD (PERIOD FOR my_valid_time (my_valid_start, my_valid_end)); 

Więc można wykorzystywać stare dobre valid_from i valid_till kolumny już w 11g i rozbudować je do właściwego okresy w 12c, prawda?

Odziedziczyłem bazy danych, które używają stałych magicznych dat dla "od zawsze" i "na zawsze", na przykład DATE '1900-01-01' i DATE '3999-12-31'. Najwyraźniej 12c używa zamiast tego NULL.

Czy więc musimy zrezygnować z używania ustalonych dat magicznych i przejść na daty NULL?

+1

Wielkie pytanie na 12c! Nie wykorzystałem jeszcze 12c, więc dodałem komentarz zamiast odpowiedzi. Moje początkowe czytanie na temat ważności Temporarl polega na tym, że chociaż NULL byłaby lepsza, magiczne daty również by działały równie dobrze. Mogą one w pewien sposób ingerować w CBO Oracle i powodować słabe plany zapytań, ale tak było zawsze w przypadku wartości magicznych; a nowe histogramy 12c mogą w pewien sposób złagodzić to. –

Odpowiedz

3

Tak, będzie można zmienić tabelę w 12c, aby umożliwić Temporal obowiązywania (patrz rozdział ALTER tabeli docs: http://docs.oracle.com/cd/E16655_01/server.121/e17209/statements_3001.htm#CJAEGCFI)

Działa poprzez konwersja gdzie klauzuli do „< =” i Klauzula "> lub jest pusta", więc nie musisz zmieniać ustalonych dat, jeśli nie chcesz.

Tom Kyte tylko pisał na swoim blogu o tym dzisiaj, z pewnymi znakomity przykładów: http://tkyte.blogspot.com/2013/07/12c-flashforward-flashback-or-see-it-as.html

+0

+1 za link Tom Kyte, doskonale wyjaśniony. I masz rację oczywiście, "NULL" _and_ '1900" będą działać, dzięki za wskazanie tego! –

+1

Czy istnieje sposób definiowania ograniczeń na te okresy, aby zapobiec nakładającym się zakresom? –

Powiązane problemy