Jak vytvořit vnořenou tabulku uvnitř bloku PL/SQL
Vítejte u druhého tutoriálu ze série PL/SQL Collection. V tomto tutoriálu se naučíme první typ kolekce, která je „vnořená tabulka“. Tabulka uvnitř tabulky je nejjednodušší definice, se kterou lze přijít, a je ve všech směrech správná, protože tabulka, která je vnořená do jiné tabulky, je přesně to, co naznačuje název vnořená tabulka.
Pokud však musíme definovat kolekci ‚Vnořená tabulka‘ elegantnějším a techničtějším způsobem, můžeme říci, že vnořené tabulky jsou jednorozměrné struktury, které jsou trvalé a neomezené povahy. Jsou přístupné v SQL i PL/SQL a lze je použít v tabulkách, záznamech a definicích objektů. Protože se jedná o neomezenou kolekci PL/SQL, může obsahovat libovolný počet prvků v náhodně uspořádané sadě.
Definice
Vnořené tabulky jsou jednorozměrné struktury, které jsou trvalé a neomezené povahy. Jsou přístupné v SQL i PL/SQL a lze je použít v tabulkách, záznamech a definicích objektů. Protože se jedná o neomezenou kolekci PL/SQL, může obsahovat libovolný počet prvků v neuspořádané sadě.
Doporučená četba:Úvod do kolekce PL/SQL
Vnořená tabulka může být vytvořena uvnitř bloku PL/SQL nebo v databázi jako objekt typu kolekce (Schema Object). V případě předchozí vnořené tabulky se chová jako jednorozměrné pole bez jakéhokoli typu indexu nebo jakéhokoli horního limitu.
Prozatím se tedy soustřeďme na to, jak vytvořit vnořenou tabulku uvnitř bloku PL/SQL a zbytek si nechme na příští tutoriál.
Syntaxe pro vytváření vnořené tabulky
DECLRE TYPE nested_table_name IS TABLE OF element_type [NOT NULL];
Tuto syntaxi jsem podrobně vysvětlil ve svém video tutoriálu na mém kanálu YouTube. Vřele vám doporučuji, abyste si toto video přečetli.
Příklad:Jak vytvořit vnořenou tabulku uvnitř bloku PL/SQL?
Následující příklad je pouze pro demonstraci toho, jak vytvořit vnořenou tabulku, není na tom nic nápadného.
SET SERVEROUTPUT ON; DECLARE TYPE my_nested_table IS TABLE OF number; var_nt my_nested_table := my_nested_table (9,18,27,36,45,54,63,72,81,90); BEGIN DBMS_OUTPUT.PUT_LINE ('Value Stored at index 1 in NT is ' ||var_nt (1)); DBMS_OUTPUT.PUT_LINE ('Value Stored at index 2 in NT is ' ||var_nt (2)); DBMS_OUTPUT.PUT_LINE ('Value Stored at index 3 in NT is ' ||var_nt (3)); END; /
Výše uvedený příklad je velmi jednoduchý, ve kterém jsme vytvořili vnořenou tabulku a pojmenovali ji ‚moje_vnořená_tabulka‘ (řádek číslo 3). Na dalším řádku (řádek číslo 4) jsme vytvořili instanci stejné kolekce a použili ji k inicializaci vnořené tabulky a uložení některých dat do ní. V sekci provádění přistupujeme k uloženým datům individuálně pomocí indexového čísla, stejně jako jsme to dělali v polích.
Místo ručního přístupu k datům pomocí indexu můžeme použít smyčky a procházet každý prvek vnořené tabulky kolekce.
SET SERVEROUTPUT ON; DECLARE TYPE my_nested_table IS TABLE OF number; var_nt my_nested_table := my_nested_table (9,18,27,36,45,54,63,72,81,90); BEGIN FOR i IN 1..var_nt.COUNT LOOP DBMS_OUTPUT.PUT_LINE ('Value stored at index '||i||'is '||var_nt(i)); END LOOP; END; /
To je další příklad toho, jak vytvořit vnořenou tabulku, ve které procházíme daty a zobrazujeme je zpět uživateli pomocí For Loop.
To je vše o tom, jak vytvořit vnořené tabulky v blocích PL/SQL. Zůstaňte naladěni, protože v dalším tutoriálu se naučíme, jak vytvářet vnořené tabulky jako objekty kolekce databáze a jaké všechny pohledy datového slovníku můžete použít k získání informací o vnořených tabulkách, které jsou uloženy ve vaší databázi.
To je vše. Děkuji za přečtení a přeji hezký den!