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

Hàm POWER () trong Oracle

Trong Oracle, POWER() hàm trả về đối số đầu tiên của nó được nâng lên thành lũy thừa của đối số thứ hai.

Cú pháp

Cú pháp như sau:

POWER(n2, n1)

Mỗi đố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ố.

Tuy nhiên, cả hai đối số có thể là bất kỳ số nào, nếu n2 là âm, sau đó là n1 phải là một số nguyên.

Ví dụ

Dưới đây là một ví dụ để chứng minh:

SELECT POWER(8, 2) 
FROM DUAL;

Kết quả:

   POWER(8,2) 
_____________ 
           64 

Và ở đây nó đang sử dụng một phần phân số trong đối số thứ hai:

SELECT POWER(8, 2.5) 
FROM DUAL;

Kết quả:

                              POWER(8,2.5) 
__________________________________________ 
   181.01933598375616624661615669884135406 

Tuy nhiên, chỉ có thể sử dụng phần phân số khi đối số đầu tiên là số dương.

Giá trị phủ định

Như đã đề cập, nếu đối số đầu tiên là số âm, thì đối số thứ hai phải là một số nguyên:

SELECT POWER(-8, 2) 
FROM DUAL;

Kết quả:

   POWER(-8,2) 
______________ 
            64 

Đây là những gì sẽ xảy ra khi số thứ hai không phải là số nguyên:

SELECT POWER(-8, 2.5) 
FROM DUAL;

Kết quả:

Error starting at line : 1 in command -
SELECT POWER(-8, 2.5) 
FROM DUAL
Error report -
ORA-01428: argument '-8' is out of range

Đối số không phải dạng 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à một ví dụ về điều gì sẽ xảy ra khi các đối số không đáp ứng tiêu chí đó:

SELECT POWER('Gosh', 'Dang')
FROM DUAL;

Kết quả:

Error starting at line : 1 in command -
SELECT POWER('Gosh', 'Dang')
FROM DUAL
Error report -
ORA-01722: invalid number

Đối số rỗng

POWER() trả về null nếu bất kỳ đối số nào là null :

SET NULL 'null';

SELECT 
    POWER(null, 3),
    POWER(8, null),
    POWER(null, null)
FROM DUAL;

Kết quả:

   POWER(NULL,3)    POWER(8,NULL)    POWER(NULL,NULL) 
________________ ________________ ___________________ 
            null             null                null 

Theo mặc định, SQLcl và SQL * Plus trả về một khoảng trống bất cứ khi nào giá trị 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.

Thiếu đối số

Đang gọi POWER() mà không có bất kỳ đối số nào dẫn đến lỗi:

SELECT POWER()
FROM DUAL;

Kết quả:

Error starting at line : 1 in command -
SELECT POWER()
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à điều tương tự cũng áp dụng khi gọi nó với quá nhiều đối số:

SELECT POWER(10, 2, 3)
FROM DUAL;

Kết quả:

Error starting at line : 1 in command -
SELECT POWER(10, 2, 3)
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:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. AUTONOMOUS_TRANSACTION

  2. Tổng hợp dữ liệu bằng các hàm nhóm (nhóm theo oracle)

  3. Không còn SPU

  4. KIỂM TRA CONSTRAINT của chuỗi chỉ chứa các chữ số. (Oracle SQL)

  5. Oracle ORA-30004 khi sử dụng hàm SYS_CONNECT_BY_PATH,