2013-06-27 9 views
6

ओरेकल 11 जी में एक टेबल कैसे डिज़ाइन करें ताकि यह बाद में ओरेकल 12 सी में नई "टेम्पोरल वैधता" सुविधा के साथ संगत हो?ओरेकल 12 सी में अस्थायी वैधता का उपयोग कैसे करें?

ओरेकल 12C की ऑनलाइन प्रलेखन निर्दिष्ट करता है कि (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)); 

तो एक 11g में पहले से ही अच्छे पुराने valid_from और valid_till कॉलम का उपयोग करें और उचित करने के लिए उन्हें गोमांस सकता एसक्यूएल भाषा गाइड inthe लौकिक वैधता को परिभाषित करने के 12 सी में अवधि, सही?

मुझे ऐसे डेटाबेस प्राप्त हुए हैं जो "हमेशा से" और "हमेशा के लिए" के लिए निश्चित जादू तिथियों का उपयोग करते हैं, उदाहरण के लिए DATE '1900-01-01' और DATE '3999-12-31'। जाहिर है, 12 सी इसके बजाय NULL का उपयोग करता है।

तो, क्या हमें निश्चित जादू तिथियों का उपयोग करके त्यागना होगा और NULL तिथियों पर स्विच करना होगा?

+1

12C पर महान प्रश्न! मैंने अभी तक 12 सी का उपयोग नहीं किया है, इसलिए बस उत्तर के बजाय एक टिप्पणी जोड़ना। Temporarl वैधता सुविधा पर मेरा प्रारंभिक पढ़ने यह है कि, जबकि एनयूएलएल बेहतर होगा, जादू की तारीख भी ठीक से काम करेगी। वे ओरेकल के सीबीओ के साथ कुछ हद तक अंतर कर सकते हैं और खराब क्वेरी योजनाओं का कारण बन सकते हैं, लेकिन यह हमेशा जादू मूल्यों के मामले में होता है; और 12 सी के नए हिस्टोग्राम भी इसे कम करने के लिए कुछ रास्ता जा सकते हैं। टॉम Kyte लिंक के लिए –

उत्तर

3

हाँ, आप अस्थायी वैधता सक्षम (किए गए दस्तावेज़ों की ALTER तालिका अनुभाग देखें: http://docs.oracle.com/cd/E16655_01/server.121/e17209/statements_3001.htm#CJAEGCFI) करने के लिए 12C में तालिका में परिवर्तन करने में सक्षम हो जाएगा

यह परिवर्तित करके काम करता है अपने जहां एक करने के लिए खंड "< =" और "> या शून्य है" खंड, इसलिए यदि आप नहीं चाहते हैं तो आपको निश्चित तिथियों को बदलने की आवश्यकता नहीं है।

टॉम Kyte बस, यह आज के बारे में अपने ब्लॉग पर पोस्ट कुछ execellent उदाहरण के साथ: http://tkyte.blogspot.com/2013/07/12c-flashforward-flashback-or-see-it-as.html

+0

+1, वास्तव में उत्कृष्टता से समझाया। और आप निश्चित रूप से सही हैं, 'NULL' _and_ '1900' दोनों काम करेंगे, यह इंगित करने के लिए धन्यवाद! –

+1

क्या ओवरलैपिंग श्रेणियों को रोकने के लिए इन अवधियों पर बाधाओं को परिभाषित करने का कोई तरीका है? –

संबंधित मुद्दे