Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Thay đổi NLS_DATE_FORMAT trong 11g thần kỳ ở đâu?

Nếu bạn muốn thay đổi tham số NLS trong một thủ tục thì bạn có thể sử dụng DBMS_SESSION.SET_NLS . Cho một môi trường giống như sau:

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

thực hiện thủ tục sẽ thay đổi định dạng (lưu ý ba dấu nháy đơn):

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

Ngoài ra, bạn có thể sử dụng SQL động, EXECUTE IMMEDIATE , ví dụ:

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

Tuy nhiên , như Justin Ghi chú hang động điều này là rất bất thường. Nếu bạn đang chuyển đổi giữa các kiểu dữ liệu, bạn nên thực hiện việc này một cách rõ ràng với một định dạng rõ ràng. Trong trường hợp ngày tháng, hàm chính xác để sử dụng là TO_DATE()




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự cố khi chạy Proc - Oracle PL / SQL

  2. Băm nhanh hơn với ít va chạm hơn?

  3. Bí danh Tên cột trong câu lệnh nhiều trường hợp

  4. Oracle có sử dụng đánh giá ngắn mạch không?

  5. Oracle Loader cho tệp .xlsx