Skip to main content

Oracle (Ukázka, strana 99)

Page 1

98

ORACLE

MONTHS_BETWEEN Tato funkce vrací číselnou hodnotu, kolik měsíců uplynulo mezi dvěma daty. Číslo, které funkce vrací, je velmi přesné a má proto obvykle řadu desetinných míst. Pro menší přesnost můžeme aplikovat funkci ROUND nebo TRUNC. SELECT MONTHS_BETWEEN ( SYSDATE, TO_DATE('1.1.2008','DD.MM.YYYY') ) FROM dual;

Obr. 5.29: Aplikace funkce MONTHS_BETWEEN

SYSDATE Tuto funkci jsme již také několikrát využili, vrací aktuální systémové datum. Pokud chceme jiný formát data, musíme užít funkci TO_CHAR. SELECT SYSDATE FROM dual;

5.7.3

Funkce pro práci s řetězci

V řadě případů je nutné vstupní nebo výstupní řetězce dotazů různým způsobem upravovat a formátovat. Typickým příkladem je převod na malá či velká písmena, výběr podřetězce, počet znaků apod.

CHAR Tato funkce vrací znak, parametrem je pozice znaku v ASCII tabulce. SELECT CHAR(65) FROM dual;

LENGTH Funkce vrací délku řetězce, který je uveden jako parametr funkce. SELECT LENGTH('Ahoj') FROM dual;

Obr. 5.30: Aplikace funkce LENGTH

5. Dotazujeme se báze dat (jazyk SQL)

Ukázka elektronické knihy, UID: KOS181145


LOWER, UPPER Tyto funkce převedou řetězec v parametru na malá písmena (LOWER) nebo na velká písmena (UPPER). Tyto funkce se často využívají v klauzuli WHERE jako součást operátoru LIKE pro vvhledání řetězce fulltextově. SELECT UPPER('Ahoj světe') FROM dual; SELECT LOWER('VŠECHNA VELKÁ') FROM dual;

99 5. Dotazujeme se báze dat (jazyk SQL)

ORACLE

REPLACE Tato funkce dokáže v zadaném řetězci najít podřetězec a nahradit jej řetězcem jiným. Obecná definice vypadá takto: SELECT REPLACE ( zdrojový_řetězec, hledaný řetězec, náhrada_za_hledaný_řetězec ) FROM tabulka; Například tato forma funkce REPLACE nám vypíše na výstupu větu „Petr je doma“. SELECT REPLACE('David je doma.','David','Petr') FROM dual;

RTRIM, LTRIM Tato funkce odstraní zprava (RTRIM) nebo zleva (LTRIM) prázdné znaky. SELECT RTRIM('Text. SELECT LTRIM('

') FROM dual; Text.') FROM dual;

SUBSTRING Funkce SUBSTRING dokáže v daném řetězci najít určitou pozici a vyseknout určitý počet znaků. Tím vzniká podřetězec jako podmnožina znaků ze vstupního řetězce. SELECT SUBSTRING ( řetězec, počátek_podřetězce, počet_znaků_podřetězce ) FROM dual; Konkrétně pak může využití této funkce vypadat například takto: SELECT SUBSTRING('ABCDEFGH',5,2)FROM dual;

5.7.4

Převodní funkce

Pokud nám nevyhovuje formát dat, se kterými pracujeme, musíme si vypomoci převodními funkcemi databáze. Takovéto funkce převedou datový typ vstupu či výstupu nebo nám umožní zadání data, znaků či číselných hodnot.

5.7 Funkce

Ukázka elektronické knihy, UID: KOS181145


100

ORACLE

BIN_TO_NUM Tato funkce zajistí převod čísla ve dvojkové soustavě do soustavy dekadické. Vstupní číslo ve dvojkové soustavě má každou číslici odděleno čárkou. SELECT BIN_TO_NUM(1,1,1) FROM dual;

CAST Tato funkce je určena pro jednoduchou konverzi datových typů. Můžeme tak převést kupříkladu číslo na řetězec. SELECT CAST(pocet_stran AS CHAR(3)) FROM knihy;

TO_DATE Funkce překonvertuje textový řetězec na datum. Využívá se v drtivé většině vkládání data a času do databázového sloupce, jenž je definován jako DATE. INSERT INTO tabulka (datum) VALUES (TO_DATE('15.9.2008','DD.MM.YYYY')); Tento příkaz vypíše datum ve formě, na jakou jsme ve střední Evropě zvyklí. Prvním parametrem je konkrétní datum, druhý parametr popisuje, jak je tento vstupní řetězec naformátován. K formátování se využívají symboly, stručný výčet uvedeme i v následující tabulce: DAY

Název dne velkými písmeny

DD

Den v rozsahu 01–31

DDD

Den v roce v rozsahu 1–365

HH12

Hodiny ve dvanáctihodinovém formátu

HH24

Hodiny ve čtyřiadvacetihodinovém formátu

MI

Minuty v rozsahu 0–59

MM

Kalendářní měsíc v rozsahu 0–12

MONTH

Název měsíce velkými písmeny

SS

Sekundy vyjádřené čísly 0–59

W

Číslo týdne v rámci měsíce

WW

Číslo týdne v rámci roku

YY

Rok vyjádřený v rozsahu 0–99

YYYY

Rok v plném číselném formátu

Tyto formátovací symboly lze dobře užít i u funkce TO_CHAR, která následuje.

TO_CHAR Funkce překonvertuje znakové datové typy do znakové sady nebo zajistí korektní zobrazení data či některé části z něj. Využívá se nejčastěji při výběrech SELECT jako formátovací řetězec: SELECT TO_CHAR(datum_narozeni,'YYYY')) AS ROK FROM vypujcitel;

5. Dotazujeme se báze dat (jazyk SQL)

Ukázka elektronické knihy, UID: KOS181145


Turn static files into dynamic content formats.

Create a flipbook
Oracle (Ukázka, strana 99) by Kosmas-CZ - Issuu