Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Gdzie zmienić NLS_DATE_FORMAT w Oracle 11g?

Jeśli chcesz zmienić parametr NLS w procedurze, możesz użyć DBMS_SESSION.SET_NLS . Biorąc pod uwagę środowisko, które wygląda tak:

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

wykonanie procedury zmienia format (zwróć uwagę na potrójne pojedyncze cudzysłowy):

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

Alternatywnie możesz użyć dynamicznego SQL, EXECUTE IMMEDIATE , na przykład:

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

Jednak , jako Justin Notatki z jaskini jest to bardzo niezwykłe. Jeśli konwertujesz między typami danych, zawsze powinieneś to robić wyraźnie z wyraźnym formatem. W przypadku dat prawidłową funkcją do użycia jest 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. Doktryna 2:kaskadowe utrzymywanie tożsamości Oracle IDENTITY zwraca 0 jako ostatnio wstawione ID

  2. Zwróć wartość zero, gdy nie ma danych wiersza

  3. JAK POBIERZ DANE MIĘDZY 2 DATAMI W ORACLE SQL DEVELOPER?

  4. Wygeneruj plik XML z niestandardowymi tagami XML z tabeli bazy danych Oracle

  5. Przerwij program PL/SQL