Datové typy
IS STUDIUM » SQL Vault » Datové typy
Označení | Popis | V dotazu se zadává... | Formát (*) |
S | string | : par | - libovolný |
N | integer | : par | - celé číslo |
F | float | : par | - celé číslo - číslo s deset. čárkou |
D | date | : par | D.M.rrRR |
T | datetime | :: par | D.M.rrRR h.m.s |
V | string; výběr z číselníku, nutno zadat název číselníku | : par | |
W1 | výběr JEDNÉ hodnoty ze seznamu, který se vytvoří Selectem | : par | |
W2 | výběr JEDNÉ hodnoty ze seznamu, který se vytvoří výčtem hodnot v definici parametru | : par | |
W1M W2M | označení multi-výběru --> výběr více hodnot ze seznamu; používá se jen u datových typů "W" | IN (::par) |
(*) Malá písmena u formátu data a času znamenají, že tuto část data/času není třeba zadávat, dosazuje se automaticky. Pokud tedy tato místa nebudou zadána, u roku se přidá na začátek "20", u času se dosadí "00".
Datové typy v sql dotazu
- U parametrů typu "N" (integer), "F" (float) a "D" (date) proběhne v programu automatická konverze na zadaný datový typ. Tj. v sql dotazu už není třeba je konverzní funkcí na tento typ převádět (např. funkcemi TO_NUMBER, TO_DATE).
- Pokud je v sql dotazu potřeba konverzní funkci použít, zadejte parametr jako takový datový typ, který je v konverzní funkci pro převod potřeba, např. je-li potřeba použít funkci TO_DATE, zadejte parametr jako datový typ "S" (string).
Příklad zadání parametru typu DATUM jako typ "D" bez konverzní funkce:
DATUM JAKO DATUM
Select uprijmeni, ujmeno, udprihl, uident from nucha where udprihl >= nvl(:datum_od, to_date('9.9.999', 'dd.mm.yyyy')) and udprihl <= nvl(:datum_do, to_date('3.3.3333','dd.mm.yyyy')) and ufak ='11210' order by udprihl, uprijmeni, ujmeno, uident -- *datum_od*D**Datum od*select to_char(trunc(sysdate,'mm'),'dd.mm.yyyy') from dual -- *datum_do*D**Datum do*select to_char(trunc(sysdate),'dd.mm.yyyy') from dual
Příklad zadání parametru typu DATUM jako typ "S" s konverzní funkcí TO_DATE:
DATUM JAKO STRING
select uprijmeni, ujmeno, udprihl, uident from nucha where udprihl >= nvl(to_date(:datum_od,'dd.mm.yy'), to_date('9.9.999', 'dd.mm.yyyy')) and udprihl <= nvl(to_date(:datum_do,'dd.mm.yy'), to_date('3.3.3333','dd.mm.yyyy')) and ufak ='11210' order by udprihl, uprijmeni, ujmeno, uident -- *datum_od*S**Datum od*select to_char(trunc(sysdate,'mm'),'dd.mm.yyyy') from dual -- *datum_do*S**Datum do*select to_char(trunc(sysdate),'dd.mm.yyyy') from dual