Datové typy

IS STUDIUM » SQL Vault » Datové typy

OznačeníPopisV dotazu se zadává...Formát (*)
Sstring: par- libovolný
Ninteger: par- celé číslo
Ffloat: par- celé číslo
- číslo s deset. čárkou
Ddate: parD.M.rrRR
Tdatetime:: parD.M.rrRR h.m.s
Vstring; výběr z číselníku, nutno zadat název číselníku: par 
W1výběr JEDNÉ hodnoty ze seznamu, který se vytvoří Selectem: par 
W2vý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