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

Cách kiểm tra định dạng ngày của phiên Oracle của bạn

Khi làm việc với các hàm trả về ngày tháng, Cơ sở dữ liệu Oracle trả về những ngày tháng này dựa trên giá trị của NLS_DATE_FORMAT tham số.

Ngoài ra còn có một NLS_TIMESTAMP_FORMAT và một NLS_TIMESTAMP_TZ_FORMAT , cả hai đều có mặt nạ định dạng ngày giờ có thể được chỉ định riêng.

Tất cả các tham số này đều có giá trị mặc định bắt nguồn từ NLS_TERRITORY (theo mặc định, phụ thuộc vào hệ điều hành).

Kiểm tra Cài đặt

Chúng tôi có thể truy vấn V$NLS_PARAMETERS xem để kiểm tra các giá trị hiện tại của các tham số này (và các tham số NLS khác):

 SELECT
    PARAMETER,
    VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER IN (
    'NLS_TERRITORY',
    'NLS_DATE_FORMAT',
    'NLS_TIMESTAMP_FORMAT',
    'NLS_TIMESTAMP_TZ_FORMAT'
    ); 

Kết quả:

 GIÁ TRỊ THÔNG SỐ __________________________ _______________________________ NLS_TERRITORY AMERICA NLS_DATE_FORMAT DD-MON-RR NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR 
AM

Giá trị của NLS_TERRITORY của tôi tham số là AMERICA và các tham số ngày giờ khác nhau sử dụng mô hình định dạng mặc định cho lãnh thổ đó.

Những giá trị này ảnh hưởng đến cách định dạng ngày khi chúng ta sử dụng một số hàm nhất định. Ví dụ:đây là một ví dụ về việc sử dụng SYSDATE để trả về ngày hiện tại:

 SELECT SYSDATE
FROM DUAL; 

Kết quả:

 09-AUG-21 

Chúng ta có thể thay đổi giá trị của các tham số NLS trong phạm vi phiên nếu được yêu cầu. Xem Cách thay đổi Định dạng Ngày trong Phiên Oracle của bạn để biết các ví dụ.

Các tham số NLS khác

V$NLS_PARAMETERS chứa các tham số khác ngoài những tham số được liệt kê ở trên. Dưới đây là một ví dụ về việc trả lại tất cả các hàng và cột trong chế độ xem:

 SELECT *
FROM V$NLS_PARAMETERS; 

Kết quả:

 PARAMETER VALUE CON_ID __________________________ _______________________________ _________ NLS_LANGUAGE AMERICAN 3 NLS_TERRITORY AMERICA 3 NLS_CURRENCY $ 3 NLS_ISO_CURRENCY AMERICA 3 NLS_NUMERIC_CHARACTERS ., 3 NLS_CALENDAR GREGORIAN 3 NLS_DATE_FORMAT DD-MON-RR 3 NLS_DATE_LANGUAGE AMERICAN 3 NLS_CHARACTERSET AL32UTF8 3 NLS_SORT BINARY 3 NLS_TIME_FORMAT HH.MI.SSXFF SÁNG 3 NLS_TIMESTAMP_FORMAT DD-THÁNG-RR HH.MI.SSXFF SA 3 NLS_TIME_TZ_FORMAT HH .MI.SSXFF AM TZR 3 NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR 3 NLS_DUAL_CURRENCY $ 3 NLS_NCHAR_CHARACTERSET AL16UTF16 3 NLS_COMP BINARY 3 F NLS_LENGTH_SONVANTICS  3 NLS_LENGTH_SONVANTICS  3 NLS_LENGTH_SONVANTICS  

Ngoài ra còn có các tham số NLS khác không được liệt kê trong chế độ xem này (chẳng hạn như NLS_LANG , NLS_CREDITNLS_DEBIT ), nhưng chúng chỉ có thể được đặt làm biến môi trường (tức là không phải trong phiên).

Tham số NLS có thể được đặt ở nhiều nơi khác nhau, chẳng hạn như ở cấp cơ sở dữ liệu, trong tệp tham số khởi tạo, trong biến môi trường, ở cấp phiên và thậm chí trong một số hàm. Mỗi người trong số này có một mức độ ưu tiên được xác định trước trong mối quan hệ với những người khác.

Các giá trị trong phạm vi phiên (như được nêu trong bài viết này) ghi đè tất cả các phạm vi khác, ngoại trừ khi nó được chỉ định rõ ràng làm đối số khi gọi một hàm.

Xem Phương pháp thiết lập các tham số NLS và mức độ ưu tiên của chúng cho một bảng phác thảo thứ tự ưu tiên mà mỗi phạm vi có liên quan đến các phạm vi khác.

Ngoài ra, hãy xem Cách Kiểm tra Giá trị của Tham số NLS, bao gồm các dạng xem khác nhau mà bạn có thể sử dụng để trả về các giá trị từ mỗi phạm vi.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. OracleDataSource so với Oracle UCP PoolDataSource

  2. Cách sử dụng các hàm Phân tích trong oracle (Over Partition theo Keyword)

  3. Các biến PL / SQL trong con trỏ có hiệu quả giống như các tham số liên kết không?

  4. Truy vấn con Oracle không thấy biến từ khối ngoài 2 cấp trở lên

  5. Cách giải quyết ORA-29913 với bảng bên ngoài