Nabídka portálu se při zobrazení článku přesouvá na konec pravého sloupce nabídek.
Jak na Oracle PL/SQL (2.) |
Autor: Kočí Marek
| Zdroj:
| Vytvořeno: 27.11.2003
| Publikováno: 28.11.2003
| Čtenářů: 5900
| Unikátních: 5603
|
Pokračování seriálu o programování v PL/SQL. V tomto díle základní operátory a přetypování proměnných.
Tak jako v každém jazyce, i PL/SQL má své způsoby zápisu operací s proměnnými.
Uvedeme si tedy stručný seznam některých způsobů zápisu.
Sčítání
Pro sčítání numerických hodnot použijeme znaménko plus (+).
DECLARE
pCislo NUMBER :=100; -- Číslo
BEGIN
pCislo:= pCislo + 50;
END;
Pro odečítání numerických hodnot použijeme znaménko mínus (-).
DECLARE
pCislo NUMBER :=100; -- Číslo
BEGIN
pCislo:= pCislo - 50;
END;
Pro sloučení textových hodnot použijeme dvě znaménka pipe (||).
DECLARE
pText Varchar;
pText2 Varchar;
BEGIN
pText:= pText || pText2;
END;
Pro násobení a dělení numerických hodnot použijeme znaménka hvězdička a lomítko (*, /).
DECLARE
pCislo NUMBER :=100; -- Číslo
BEGIN
pCislo:= pCislo + 50;
END;
Pro umocňování použijeme zdvojeného znaménka hvězdička (**).
DECLARE
pCislo NUMBER :=100; -- Číslo
BEGIN
pCislo:= pCislo ** 5;
END;
Pro logický součet,součin a negaci použijeme operátory OR, AND, NOT.
DECLARE
pCislo NUMBER :=100; -- Číslo
BEGIN
pCislo:= pCislo OR 5; -- soucet
pCislo:= pCislo AND 5; -- soucin
pCislo:= pCislo NOT 5; -- negace
END;
Pro porovnávání použijeme tyto operátory:
= |
rovnost |
< |
menší než |
> |
větší než |
>= |
větší než nebo rovno |
<= |
menší než nebo rovno |
<> |
nerovno, lze použít i != |
IS NULL |
Je NULL |
BETWEEN |
V rozmezí |
LIKE |
Obsahuje |
IN |
Je v seznamu |
Následuje příklad použití operátorů:
DECLARE
pCislo1 NUMBER :=100;
pCislo2 NUMBER :=120;
pCislo3 NUMBER :=99;
pCislo4 NUMBER :=121;
pVeta VARCHAR2(20) := 'Věta slouží pro test';
BEGIN
IF pCislo1 IS NULL THEN ... --Kdyz je NULL
IF pCislo1 BETWEEN pCislo2 AND pCislo3 -- Je mezi
IF pVeta LIKE '%test' -- končí slovem test
IF pVeta LIKE 'test%' -- začíná slovem test
IF pVeta LIKE '%test%' -- obsahuje slovo test
IF pCislo1 IN (1,2,3,8,100) THEN ... -- je v seznamu
END;
Typové konverze
Toliko tedy k operátorům. Někdy můžeme potřebovat například sčítat i typově nestejné proměnné.
Pro tyto případy slouží tzv. přetypování. Jak se takové přetypování dělá? Podívejme se na několik případů:
Datum na text TO_CHAR([datum],[format])
TO_CHAR(SysDate,'FMDD.MM.YYYY')
Číslo na text TO_CHAR([číslo],[format])
TO_CHAR(100.33,'999.99')
Text na číslo TO_NUMBER([text],[format])
IF rok > TO_NUMBER('2003') THEN ...
A na zěvěr nekolik případů formátování pro konverze:
TO_CHAR(100.33,'999.99') -- vrací '100.33'
TO_CHAR(100.33,'099999.99') -- vrací '00100.33'
TO_CHAR(100.33,'B99999.99') -- vrací ' 100.33'
TO_CHAR(100.33,'999.99') -- vrací '100.33'
TO_CHAR(10000.33,'9999,999.99') -- vrací '10,100.33'
-- pDatum je nastaveno na 13 leden 20003
TO_CHAR(pDatum,'DD.MM.YYYY') -- vrací '13.01.2003'
TO_CHAR(pDatum,'FMDD MONTH.YYYY') -- vrací '13 ledna.2003'
TO_CHAR(pDatum,'FMDD.MON.YYYY') -- vrací '13.LED.2003'
TO_CHAR(pDatum,'FMDD.MON.YY') -- vrací '13.LED.03'
TO_CHAR(pDatum,'DDD') -- vrací kolikaty den v roce '13'
-- pDatum je nastaveno na 2 únor 20003
TO_CHAR(pDatum,'DDD') -- vrací kolikaty den v roce '33'
Příště si probereme zápis procedur a funkcí.
|