|
Pár poznámek...
Rozdíl mezi typem CHAR a typem VARCHAR2 je v tom, že u CHAR se doplní řetězec mezerami do
požadované délky. CHAR se obvykle používá pro příznaky typu ANO-NE a podobně. Používá se jen
tehdy, pokud jsme si jisti, že všechny data ve sloupci budou mít stejnou délku.
Datový typ FLOAT je rozšáření datového typu NUMBER a může uložit hodnoty vyšší než typ NUMBER.
Používá se obvykle k ukládání vědeckých dat, jako jsou výsledky pokusů, či přesná měření.
|
|
V Oracle 8 můžete vytvářet objekty podle svých potřeb. Je potřeba, abyste měli
nainstalovánou Oracle Objects option. Objekt pak vytvoříte příkazem CREATE TYPE.
CREATE [OR REPLACE] TYPE [schema.]type_name
{ AS | AS TABLE | AS OBJECT }
{ VARRAY (size) | VARYING ARRAY (size)}
{ OF datatype }
{ REF object_type_name }
{ MAP | ORDER MEMBER function_specification }
{ PRAGMA RESTRICT_REFERENCES fun_spec restrict }
Tímto příkazem můžete vytvořit objektový typ proměnného pole (VARRAY), typ vnořené
tabulky nebo neúplný objektový typ, který slouží jako předsunutá (forward) deklarace.
Můžete vytvořit typ AS OBJECT a definovat proměnné (atributy) a podprogramy (metody).
Pomocí volby AS TABLE můžete vytvořit pojmenovanou vnořenou tabulku. Vytvoříte-li
tabulku s jedním datovým typem, vnořená tabulka bude představovat tabulku s jedním
sloupcem. Vytvoříte-li tabulku tak, že jako datový typ uvedete jiný objekt, tabulka
přebere jména sloupců a atributů z tohoto objektu.
Můžete také vytvořit typ AS VARRAY (velikost), což je uspořádaná množina prvků podobná
poli. Prvky objektu VARRAY mohou být pouze skalární datové typy, nemohou to být vnořené
tabulky nebo jiné objekty.
Volbou REF spojíte instanci zdrojového typu s instancí cílového typu.
Volba MAP MEMBER slouží k určení členské funkce nebo procedury. Můžete uvést pouze jedinou
metodu, která musí vracet předdefinovaný skalární datový typ SQL. Metoda nemůže mít
parametry jen implicitní parametr SELF.
Můžete deklarovat pouze jednu metodu MAP nebo ORDER, nikoli však současně.
Pro vytvoření objektu můžete také použít příkaz CREATE OR REPLACE, který případný
existující objekt nahradí novým. Pokud mahradíte starší objekt, Oracle zneplatní
stávající tělo objektového typu a musíte ho znovu přeložit.
Abyste mohli vytvořit objektový typ, musíté mít systémová práva CREATE TYPE nebo
CREATE ANY TYPE.
|
|
Příkazem CREATE TYPE BODY vytvoříte tělo, které jste uvedli v příkazu CREATE TYPE.
CREATE [OR REPLACE] TYPE BODY [schema.]type_name { IS | AS }
{ MEMBER procedure_declaration | function_declaration
{ MAP | ORDER MEMBER function_declaration }
END;
|