sql >> Databáze >  >> RDS >> Oracle

Jak vytvořit VARRAY jako člena bloku PL/SQL v databázi Oracle

Dnes uděláme nějakou praktickou ukázku, abychom se naučili, jak vytvořit VARRAY v databázi Oracle, takže neváhejte a navštivte poslední tutoriál pro všechny potřebné teorie o VARRAY. Jako vždy se pokusím udržet příklad co nejjednodušší. Takže pokud s programováním začínáte, nebojte se, mám vás!

Dříve jsme diskutovali v úvodu do PL/SQL VARRAY, které lze vytvořit jako vnořené tabulky VARRAY

  • Jako člen PL/SQL Block a
  • Jako databázový objekt.

Dnes se naučíme, jak vytvořit VARRAY jako člen bloku PL/SQL a zbytek necháme na budoucí tutoriály.

Krok 1:Definujte Varray uvnitř bloku PL/SQL

Varray můžete definovat pouze uvnitř deklarační sekce bloku PL/SQL.

 	SET SERVEROUTPUT ON;
	DECLARE
	    TYPE inBlock_vry IS VARRAY (5) OF NUMBER;

Ve výše uvedeném kódu jsme vytvořili VARRAY a pojmenovali jej inBlock_vry. Tento varray je schopen pojmout 5 prvků datového typu Number.

Krok 2:Inicializujte Varray

Inicializaci varray lze snadno provést pomocí proměnné kolekce. Pro inicializaci VARRAY nejprve definujeme proměnnou kolekce a poté ji použijeme pro inicializaci.

vry_obj inBlock_vry  :=  inBlock_vry();

Ve výše uvedeném kódu jsme vytvořili proměnnou kolekce s názvem vry_obj a použili jsme ji k inicializaci varray inBlock_vry.

Informace:
Některé knihy označují proměnnou kolekce jako objekt sbírky, nenechte se proto zmást, protože obě jsou stejné .

Krok 3:Jak vložit data do VARRAY

Vkládání dat do varray je velmi podobné vkládání dat do pole jiného programovacího jazyka. Data můžete vložit buď přímo do každé buňky varray pomocí čísla indexu, nebo můžete k naplnění varray použít LOOP.

Jak vložit data do VARRAY pomocí indexu buňky

Jak víme, struktura kolekce PL/SQL buněk se skládá z buňky s dolním indexem nazývaným index. Tento index můžeme použít pro vkládání dat do varray.

	BEGIN
		vry_obj.EXTEND(5); 
		vry_obj(1):= 10*2;
		DBMS_OUTPUT.PUT_LINE(vry_obj(1));    
	END;
	/

Sekce provedení -1

Ve výše uvedeném kódu jsme napsali prováděcí sekci bloku PL/SQL. Skládá se ze 3 spustitelných příkazů. Tyto tři výroky jsou –

Řádek 6:Prohlášení 1

První příkaz je volání procedury EXTEND. V tomto příkazu přidělujeme paměť každé buňce VARRAY pomocí procedury EXTEND.

Řádek 7:Prohlášení 2

Ve druhém příkazu přiřazujeme číselnou hodnotu (hodnotu odvozenou z aritmetického násobení) do první buňky varray (buňka s indexem číslo 1).

Informace:
V kolekci PL/SQL VARRAY indexové číslo buňky začíná 1, zatímco indexové číslo buněk v poli začíná 0.

Řádek 8:Prohlášení 3

Třetí příkaz je výstupní příkaz, kde zobrazujeme hodnotu, kterou jsme uložili do buňky 1 VARRY, zpět uživateli.

Takto můžete uložit a zobrazit hodnotu uloženou v jednotlivých buňkách varray. Tento proces je dobrý pouze tehdy, když máte krátký varray. Jinak to není efektivní způsob. Dalším způsobem vkládání dat do Varray je použití Loop.

Doporučená četba:Úvod do PL/SQL Loop

Jak vložit data do VARRAY pomocí PL/SQL Loop

Nejběžnějším způsobem práce s daty kolekce je použití smyček. Většina programátorů je zvyklá používat smyčky k procházení dat jakéhokoli druhu pole, protože je to snadné, méně časově náročné a obsahuje méně řádků kódů, které udržují váš kód čistší a usnadňují čtení. Stručně řečeno, je to snadné a efektivní.

	BEGIN
	FOR i IN 1 .. vry_obj.LIMIT
	LOOP
 		vry_obj.EXTEND;
		vry_obj (i):= 10*i;    
		DBMS_OUTPUT.PUT_LINE (vry_obj (i));    
	END LOOP;
	END;
	/

Sekce provedení -2

Výše uvedený kód jsem podrobně vysvětlil ve výukovém videu na mém kanálu YouTube, který můžete zhlédnout zde.

Abychom minimalizovali zmatek, vysvětlím vám zde dvě hlavní funkce použité ve výše uvedené sekci provádění (Sekce provádění – 2), kterými jsou – Limit &Extend.

Chcete-li porozumět fungování výše uvedeného kódu, musíte rozumět smyčkám PL/SQL for. Jsem rád, že jsem udělal podrobný návod na For-Loop, který si můžete přečíst zde.

Limit (řádek 6): Limit je metoda sběru, která vrací maximální počet prvků, které jsou povoleny v VARRAY. V našem případě je maximální počet prvků, které jsou povoleny ve VARRAY, 5 (řádek 3), což se zde zase stává horním limitem For-Loop.

Prodloužit (Řádek 8): Extend je procedura, která se používá pro alokaci paměti a připojuje prvek k VARRAY. Pokud je použit bez argumentu (prováděcí oddíl-2 řádek 8), připojí jeden prvek null, a pokud je použit s argumentem EXTEND (n) (prováděcí oddíl -1 řádek 6), připojí n čísel ke kolekci. Kde n je celé číslo, které jste zadali jako argument proceduře EXTEND.

To je výukový program PL/SQL o tom, jak vytvořit kolekci VARRAY v databázi Oracle jako člen bloku PL/SQL. Ujistěte se, že tento blog dáte To se mi líbí, sdílejte jej se svými přáteli a přihlaste se k odběru mého kanálu, protože mnoho takových návodů teprve přijde. Děkuji a přeji hezký den!


  1. Korupce databáze v MS Access a jak se vypořádat

  2. PostgreSQL - Zápis dynamického SQL do uložené procedury, která vrací sadu výsledků

  3. Kdy použít zděděné tabulky v PostgreSQL?

  4. alternativy k REPLACE na datovém typu text nebo ntext