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
?
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. –