Trong Cơ sở dữ liệu Oracle, các tham số NLS sau có thể được sử dụng để xác định cách hiển thị tiền tệ cho phiên hiện tại:
-
NLS_CURRENCY
chỉ định chuỗi để sử dụng làm ký hiệu nội tệ choL
phần tử định dạng số. -
NLS_ISO_CURRENCY
xác định những gì sẽ sử dụng choC
phần tử định dạng. -
NLS_DUAL_CURRENCY
chỉ định những gì sẽ sử dụng choU
phần tử định dạng.
Giá trị mặc định cho những thứ này được xác định bởi NLS_TERRITORY
tham số.
L
, C
và U
các phần tử định dạng số có thể được sử dụng trong các hàm như TO_CHAR()
để định dạng một số dưới dạng đơn vị tiền tệ.
Cách trả lại ký hiệu tiền tệ
Bạn có thể tìm ra ký hiệu tiền tệ mà phiên hiện tại của bạn sử dụng bằng cách truy vấn V$NLS_PARAMETERS
xem.
Ví dụ:
SELECT
PARAMETER,
VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER IN (
'NLS_TERRITORY',
'NLS_CURRENCY',
'NLS_ISO_CURRENCY',
'NLS_DUAL_CURRENCY'
);
Kết quả:
PARAMETER VALUE ____________________ __________ NLS_TERRITORY GERMANY NLS_CURRENCY € NLS_ISO_CURRENCY GERMANY NLS_DUAL_CURRENCY €
Giá trị mặc định của các tham số này được lấy bởi NLS_TERRITORY
tham số. Đây là cài đặt hiện tại của tôi cho thông số đó:
SELECT VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER = 'NLS_TERRITORY';
Kết quả:
GERMANY
Bằng cách thay đổi tham số đó, giá trị của các tham số khác sẽ được cập nhật thành giá trị mặc định cho lãnh thổ đó (trừ khi lãnh thổ mới sử dụng cùng giá trị với lãnh thổ cũ cho một tham số nhất định).
Tuy nhiên, bạn cũng có thể thay đổi trực tiếp từng tham số, điều này cho phép bạn có ký hiệu tiền tệ khác với ký hiệu mặc định cho lãnh thổ đó.
Phần tử định dạng đang hoạt động
Dưới đây là một ví dụ về nơi các thông số NLS ở trên có thể được sử dụng:
ALTER SESSION SET NLS_TERRITORY = 'DENMARK';
SELECT
TO_CHAR(45, 'L99') AS "L",
TO_CHAR(45, 'C99') AS "C",
TO_CHAR(45, 'U99') AS "U"
FROM DUAL;
Kết quả:
L C U ________________ _____________ ______________ kr45 DKK45 €45