यह विचार अच्छा नहीं है। केवल यह सत्यापित करने का तरीका है कि कोई तिथि सही है, इसे दिनांक में बदलने का प्रयास करना है। यदि रूपांतरण विफल हो जाता है तो यह कोई तिथि नहीं है; यदि यह सफल होता है तो यह हो सकता है होना। नियमित भाषा को पार्स करने के लिए तिथियां बहुत जटिल हैं।
तो, एक ऐसा फ़ंक्शन बनाएं जो इसे दिनांक में परिवर्तित करे; आप यहां से कहीं अधिक सामान्य बना सकते हैं, इसलिए इसे अन्य उद्देश्यों के लिए पुन:उपयोग किया जा सकता है:
create or replace function validate_date (
PDate in varchar2
, PDateFormat in varchar2
) return date is
begin
return to_date(PDate, PDateFormat);
exception when others then
return null;
end;
यह एक तिथि देता है यदि यह सत्यापित करने में सक्षम है कि दिनांक और दिनांक प्रारूप मेल खाता है, अन्यथा कोई त्रुटि होने पर न्यूल लौटाता है। तब आपकी क्वेरी बन जाती है:
select 'P' from dual where validate_date('20140506', 'yyyymmdd') is not null