Jakub Vrána - Oracle funkce
(referát na seminář Oracle 1 - 8. 3. 2001)
Viz též popis funkcí a výrazů v manuálu Oracle. Datové typy parametrů funkcí se automaticky převádějí. Při parametru NULL funkce vrací NULL až na výjimky.
Jednořádkové funkce
Mohou se vyskytovat v SELECT (pokud neobsahuje GROUP BY), WHERE, START WITH, CONNECT BY.
Numerické funkce - s přesností na 30 - 38 platných číslic
- CEIL, FLOOR, TRUNC, ROUND, MOD, ABS, SIGN
- SIN, COS, TAN, ASIN, ACOS, ATAN, ATAN2, SINH, COSH, TANH
- LN, LOG, EXP, POWER, SQRT
Znakové funkce - varchar2 (4000), char (2000), delší bez varování ořízne
- CHR (parametr using nchar_cs), ASCII
- CONCAT (pouze dva řetězce, totéž jako ||)
- LENGTH, LENGTHB
- REPLACE (všechny výskyty), TRANSLATE (strtr), SUBSTR, SUBSTRB
- INSTR (parametry od jakého znaku - lze záporně, kolikátý výskyt), INSTRB
- LPAD, RPAD, LTRIM, RTRIM, TRIM
- INITCAP (každé slovo), LOWER, UPPER
- NLS_INITCAP, NLS_LOWER, NLS_UPPER (národní kódování)
- NLSSORT (třídění podle národního kódování)
- SOUNDEX (výslovnost)
Datumové funkce - vrací datum
- ADD_MONTHS (pozor na poslední den v měsíci)
- LAST_DAY (vrátí poslední den v měsíci)
- MONTHS_BETWEEN (vrací reálné číslo)
- NEW_TIME (převod časových zón, parametry jsou třípísmenné řetězce definované v Oracle)
- NEXT_DAY (první den v týdnu po aktuálním datu, den v týdnu se určuje jako řetězec v jazyce session)
- ROUND, TRUNC (zaokrouhlení na dny, měsíce, roky, ...)
- SYSDATE (aktuální datum a čas, nemá parametry - lze psát bez závorek)
Konverzní funkce
- CAST (výraz, expr AS type)
- CHARTOROWID, ROWIDTOCHAR, HEXTORAW, RAWTOHEX
- TO_CHAR, TO_NUMBER, TO_DATE, TO_LOB
- TO_MULTI_BYTE, TO_SINGLE_BYTE
- CONVERT (převod kódování, parametry definované v Oracle)
- TRANSLATE ... USING (převod kódování databáze a národního)
Různé funkce
- DECODE (výraz, switch)
- NVL (ifnull, typ druhého parametru je převeden do typu prvního parametru)
- GREATEST, LEAST (libovolný počet parametrů)
- BFILENAME (data z externího souboru)
- DUMP (výpis informací o hodnotě)
- EMPTY_[BC]LOB
- NLS_CHARSET_DECL_LEN, NLS_CHARSET_ID, NLS_CHARSET_NAME
- SYS_CONTEXT (různé proměnné v rámci kontextu), USERENV (různé proměnné v rámci uživatele)
- SYS_GUID (unikátní 16B identifikátor, bez parametrů - ale nutno psát závorky)
- UID, USER
- VSIZE (počet bajtů pro uložení v interní reprezentaci)
Objektové funkce
- DEREF, MAKE_REF, REF, REFTOHEX, VALUE
Agregační funkce
Pokud neuvedu GROUP BY, pracuje se se všemi řádky jako s jednou skupinou.
- DISTINCT - modifikátor, aby se pracovalo jen s různými hodnotami, defaultně ALL
- AVG, COUNT (lze zadat parametr *), MAX, MIN, SUM, STDDEV, VARIANCE
- GROUPING