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

Typ tabulky v příkladu Oracle PL SQL

Typy tabulek PL SQL jsou ve skutečnosti kolekce, jako pole. Pomocí kolekcí PL SQL můžete efektivně zpracovávat hromadná data. V tomto příspěvku vás naučím velmi základní a nejčastěji používané příkazy pro kolekce typů tabulek PL SQL. Níže je uveden typ tabulky v příkladu Oracle PL SQL.

Nejprve jej musíte deklarovat v sekci deklarace bloku PL SQL. Zde je syntaxe s příkladem:

Typ tabulky v příkladu SQL Oracle PL

1. Deklarujte typy tabulek PL SQL

Type any_table_type is table of emp%rowtype index by binary_integer;
emp_rec any_table_type;

Výše uvedené příkazy deklarují typ tabulky any_table_type typu řádku tabulky emp a poté se inicializují pomocí emp_rec. Po deklaraci mu můžete ručně přiřadit hodnoty. Níže je příklad:

2. Přiřadit hodnoty k typům tabulek PL SQL

set serveroutput on;
declare
Type any_table_type is table of emp%rowtype 
    index by binary_integer;
emp_rec any_table_type;
begin
emp_rec(1).ename := 'abc'; /* assigning values */
emp_rec(2).ename := 'xyz';
dbms_output.put_line(emp_rec(1).ename); /* accessing values */
dbms_output.put_line(emp_rec(2).ename);
end;

Protože tabulky PL SQL jsou jako pole, hodnoty by měly být přiřazeny zadáním čísla prvku pole, jak je uvedeno výše. Níže je uveden příklad, jak odstranit z kolekcí typů tabulek PL SQL.

3. Odstranění prvků z typů tabulek PL SQL

set serveroutput on;
declare
Type any_table_type is table of emp%rowtype index by binary_integer;
emp_rec any_table_type;
begin
emp_rec(1).ename := 'abc';
emp_rec(2).ename := 'xyz';
emp_rec.delete(1); /* will delete first element */
for i in emp_rec.first .. emp_rec.last loop /* loop through the array */
dbms_output.put_line(emp_rec(i).ename);
end loop;
end;

Výše uvedený příklad odstraní první prvek a vytiskne pouze druhý. Když provedete výše uvedený blok, výstup bude:

xyz
Procedura PL/SQL byla úspěšně dokončena.

Chcete-li odstranit všechny prvky z typu tabulky PL SQL, níže je příklad:

emp_rec.delete;

4. Naplnění typů tabulek PL SQL pomocí hromadného sběru

Níže je uveden příklad typu tabulky v oracle PL SQL pro načtení dat z tabulky emp a poté naplní typ tabulky PL SQL pomocí hromadného sběru a poté aktualizuje tabulku emp pomocí FORALL. Zde je příklad:

set serveroutput on;

DECLARE
   CURSOR c
   IS
      SELECT * FROM emp;

   TYPE any_table_type IS TABLE OF emp%ROWTYPE
                             INDEX BY BINARY_INTEGER;

   emp_rec   any_table_type;
BEGIN
   OPEN c;

   FETCH c
   BULK COLLECT INTO emp_rec;

   CLOSE c;

   FORALL i IN emp_rec.FIRST .. emp_rec.LAST
      UPDATE emp
         SET comm = emp_rec (i).sal * 10 / 100
       WHERE empno = emp_rec (i).empno;

   COMMIT;
END;

Můžete také zkontrolovat můj PL SQL Procedure Tool a vygenerovat skript pro váš vývoj.

  1. Android – lepší přístup při načítání obrázků z SD KARTY

  2. Laravel 5.2 – Použít řetězec jako vlastní primární klíč pro výmluvnou tabulku se stane 0

  3. Sloučení datových souborů se Statistica, část 2

  4. Jaký je nejlepší způsob programového testování připojení SQL Server?