Oracle एक अंतर्निहित TO_DATE करेगा गैर-तारीख वाले शाब्दिकों पर उन्हें DATE . में सम्मिलित करते समय NLS_DATE_FORMAT . के मान का उपयोग करने वाला स्तंभ प्रारूप मुखौटा के रूप में। यदि गैर-दिनांक शाब्दिक इस प्रारूप से मेल खाता है तो यह काम करेगा (और यदि ऐसा नहीं होता है तो यह नहीं होगा) - हालांकि, यदि NLS_DATE_FORMAT कभी भी बदल दिया जाता है तो यह तुरंत टूट जाएगा (कोई भी डिबग करने के लिए एक बड़ा दर्द हो सकता है क्योंकि जो कोड काम कर रहा था वह नहीं होगा लेकिन किसी ने भी कोड नहीं बदला होगा)।
आप अपने वर्तमान NLS_DATE_FORMAT . का पता लगा सकते हैं क्वेरी के साथ:
SELECT VALUE
FROM NLS_SESSION_PARAMETERS
WHERE PARAMETER = 'NLS_DATE_FORMAT';
स्पष्ट रूप से TO_DATE का उपयोग करना बेहतर है सही प्रारूप मुखौटा के साथ या एएनएसआई तिथि शाब्दिक (यानी DATE '2014-12-01' का उपयोग करने के लिए) )।
insert into employees_table
values(
05,
'Sophie',
'Kuchinskey',
'example@sqldat.com',
105,
5000000,
60,
TO_DATE( '20-sep-1994', 'DD-Mon-YYYY' )
);
या, लोकेल/भाषा अज्ञेयवादी एएनएसआई प्रारूप का उपयोग करना:
insert into employees_table
values(
05,
'Sophie',
'Kuchinskey',
'example@sqldat.com',
105,
5000000,
60,
DATE '1994-09-20'
);