V Oracle je to POWER()
funkce vrátí svůj první argument umocněný na sílu druhého argumentu.
Syntaxe
Syntaxe vypadá takto:
POWER(n2, n1)
Každý argument může být jakýkoli číselný datový typ nebo jakýkoli nenumerický datový typ, který lze implicitně převést na číselný datový typ.
Oba argumenty však mohou být libovolné číslo, pokud je n2
je záporné, pak n1
musí být celé číslo.
Příklad
Zde je příklad k demonstraci:
SELECT POWER(8, 2)
FROM DUAL;
Výsledek:
POWER(8,2) _____________ 64
A zde používá zlomkovou část ve druhém argumentu:
SELECT POWER(8, 2.5)
FROM DUAL;
Výsledek:
POWER(8,2.5) __________________________________________ 181.01933598375616624661615669884135406
Použití zlomkové části je však možné pouze tehdy, když je první argument kladný.
Záporné hodnoty
Jak již bylo zmíněno, pokud je první argument záporný, pak druhý argument musí být celé číslo:
SELECT POWER(-8, 2)
FROM DUAL;
Výsledek:
POWER(-8,2) ______________ 64
Co se stane, když druhé číslo není celé číslo:
SELECT POWER(-8, 2.5)
FROM DUAL;
Výsledek:
Error starting at line : 1 in command - SELECT POWER(-8, 2.5) FROM DUAL Error report - ORA-01428: argument '-8' is out of range
Nečíselné argumenty
Argumenty mohou být jakýkoli číselný datový typ nebo jakýkoli nenumerický datový typ, který lze implicitně převést na číselný datový typ.
Zde je příklad toho, co se stane, když argumenty nesplňují tato kritéria:
SELECT POWER('Gosh', 'Dang')
FROM DUAL;
Výsledek:
Error starting at line : 1 in command - SELECT POWER('Gosh', 'Dang') FROM DUAL Error report - ORA-01722: invalid number
Nulové argumenty
POWER()
vrátí null
pokud je nějaký argument null
:
SET NULL 'null';
SELECT
POWER(null, 3),
POWER(8, null),
POWER(null, null)
FROM DUAL;
Výsledek:
POWER(NULL,3) POWER(8,NULL) POWER(NULL,NULL) ________________ ________________ ___________________ null null null
Ve výchozím nastavení vrátí SQLcl a SQL*Plus prázdné místo, kdykoli se v důsledku příkazu SQL SELECT
objeví hodnota null. prohlášení.
Můžete však použít SET NULL
určit jiný řetězec, který má být vrácen. Zde jsem uvedl, že řetězec null
by měl být vrácen.
Chybí argumenty
Volání POWER()
bez jakýchkoli argumentů vede k chybě:
SELECT POWER()
FROM DUAL;
Výsledek:
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:
A totéž platí při volání s příliš mnoha argumenty:
SELECT POWER(10, 2, 3)
FROM DUAL;
Výsledek:
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: