Jika Anda ingin mengubah parameter NLS dalam suatu prosedur maka Anda dapat menggunakan DBMS_SESSION.SET_NLS
. Mengingat lingkungan yang terlihat seperti ini:
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
menjalankan prosedur mengubah format (perhatikan tiga tanda kutip tunggal):
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
Atau Anda dapat menggunakan SQL dinamis, EXECUTE IMMEDIATE
, misalnya:
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
Namun , sebagai Justin Catatan gua
ini sangat tidak biasa. Jika Anda mengonversi antar tipe data, Anda harus selalu melakukan ini secara eksplisit dengan format eksplisit. Dalam hal tanggal, fungsi yang benar untuk digunakan adalah TO_DATE()