Trong Oracle, ATAN2()
hàm trả về arctangent (tiếp tuyến nghịch đảo) của hai đối số của nó.
Cú pháp
Cú pháp như sau:
ATAN2(n1 , n2)
Ở đâu n1
có thể nằm trong một phạm vi không bị giới hạn và trả về một giá trị trong phạm vi - pi đến pi , tùy thuộc vào các dấu hiệu của n1
và n2
, được biểu thị bằng radian.
Ví dụ
Đây là một ví dụ:
SELECT ATAN2(0.3, 0.7)
FROM DUAL;
Kết quả:
ATAN2(0.3,0.7) ____________________________________________ 0.404891786285083423312072929009442616553
Đối số không phải là số
Các đối số có thể là bất kỳ kiểu dữ liệu số nào hoặc bất kỳ kiểu dữ liệu phi số nào có thể được chuyển đổi hoàn toàn thành kiểu dữ liệu số.
Dưới đây là những gì sẽ xảy ra khi chúng tôi cung cấp đối số không phải là số không thể chuyển đổi thành kiểu dữ liệu số:
SELECT ATAN2('One', 0.2)
FROM DUAL;
Kết quả:
Error starting at line : 1 in command - SELECT ATAN2('One', 0.2) FROM DUAL Error report - ORA-01722: invalid number
Tuy nhiên, đây là những gì sẽ xảy ra khi chúng tôi thay đổi one
thành 1
và giữ nguyên các dấu ngoặc kép:
SELECT ATAN2('1', '0.2')
FROM DUAL;
Kết quả:
ATAN2('1','0.2') ___________________________________________ 1.37340076694501586086127192644496114865
Giá trị rỗng
Nếu bất kỳ đối số nào là null
, kết quả là null
:
SET NULL 'null';
SELECT
ATAN2(null, 0.3),
ATAN2(0.3, null),
ATAN2(null, null)
FROM DUAL;
Kết quả:
ATAN2(NULL,0.3) ATAN2(0.3,NULL) ATAN2(NULL,NULL) __________________ __________________ ___________________ null null null
Theo mặc định, SQLcl và SQL * Plus trả về một chuỗi 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
Gọi ATAN2()
mà không chuyển bất kỳ đối số nào sẽ trả về lỗi:
SELECT ATAN2()
FROM DUAL;
Kết quả:
Error starting at line : 1 in command - SELECT ATAN2() 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 ATAN2(1)
FROM DUAL;
Kết quả:
Error starting at line : 1 in command - SELECT ATAN2(1) 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: