यदि आप किसी प्रक्रिया में NLS पैरामीटर बदलना चाहते हैं तो आप DBMS_SESSION.SET_NLS
. इस तरह दिखने वाले वातावरण को देखते हुए:
SQL> select value
2 from nls_session_parameters
3 where parameter = 'NLS_DATE_FORMAT';
VALUE
------------------------------------------
DD-MON-RR
SQL> select sysdate from dual;
SYSDATE
---------
25-NOV-14
प्रक्रिया को क्रियान्वित करने से प्रारूप बदल जाता है (तीन एकल उद्धरणों पर ध्यान दें):
SQL> begin
2 dbms_session.set_nls('nls_date_format', '''yyyy-mm-dd''');
3 end;
4 /
PL/SQL procedure successfully completed.
SQL> select sysdate from dual;
SYSDATE
----------
2014-11-25
वैकल्पिक रूप से आप डायनेमिक SQL, EXECUTE IMMEDIATE
, उदाहरण के लिए:
SQL> begin
2 execute immediate 'alter session set nls_date_format = ''yyyy-mm''';
3 end;
4 /
PL/SQL procedure successfully completed.
SQL> select sysdate from dual;
SYSDATE
-------
2014-11
हालांकि , जैसा जस्टिन गुफा के नोट
यह बेहद असामान्य है। यदि आप डेटाटाइप्स के बीच कनवर्ट कर रहे हैं तो आपको यह हमेशा स्पष्ट रूप से करना चाहिए एक स्पष्ट प्रारूप के साथ। तिथियों के मामले में उपयोग करने के लिए सही कार्य है TO_DATE()