Trong Oracle, INITCAP()
hàm trả về đối số của nó với chữ cái đầu tiên của mỗi từ là chữ hoa và tất cả các chữ cái khác ở dạng chữ thường.
Đối với yêu cầu ngôn ngữ đặc biệt cho chuyển đổi chữ hoa chữ thường, bạn có thể muốn thử NLS_INITCAP()
chức năng thay thế.
Cú pháp
Cú pháp như sau:
INITCAP(char)
Ở đâu char
có thể thuộc bất kỳ kiểu dữ liệu nào CHAR
, VARCHAR2
, NCHAR
hoặc NVARCHAR2
.
Ví dụ
Dưới đây là một ví dụ đơn giản để chứng minh:
SELECT INITCAP('ponzi investment house')
FROM DUAL;
Kết quả:
INITCAP('PONZIINVESTMENTHOUSE') __________________________________ Ponzi Investment House
Điều gì sẽ xảy ra nếu tôi vượt qua tất cả các chữ cái UPPERCASE?
Việc chuyển tất cả các chữ cái viết hoa không làm thay đổi kết quả:
SELECT INITCAP('PONZI INVESTMENT HOUSE')
FROM DUAL;
Kết quả:
INITCAP('PONZIINVESTMENTHOUSE') __________________________________ Ponzi Investment House
Giá trị rỗng
Chuyển null
trả về null
:
SET NULL 'null';
SELECT INITCAP(null)
FROM DUAL;
Kết quả:
INITCAP(NULL) ________________ null
Theo mặc định, SQLcl và SQL * Plus trả về một khoảng trống bất cứ khi nào null
xảy ra do một SELECT
trong SQL tuyên bố.
Tuy nhiên, bạn có thể sử dụng SET NULL
để chỉ định một chuỗi khác được trả về. Ở đây tôi đã chỉ định rằng chuỗi null
nên được trả lại.
Số lượng đối số không chính xác
Đang gọi INITCAP()
mà không chuyển bất kỳ đối số nào sẽ trả về lỗi:
SELECT INITCAP()
FROM DUAL;
Kết quả:
Error starting at line : 1 in command - SELECT INITCAP() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action:
Và việc chuyển sai số đối số dẫn đến lỗi:
SELECT INITCAP('Gosh', 'Dang', 'Investments')
FROM DUAL;
Kết quả:
Error starting at line : 1 in command - SELECT INITCAP('Gosh', 'Dang', 'Investments') FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action: