Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Typ tabeli w Oracle PL SQL Przykład

Typy tabel PL SQL są w rzeczywistości kolekcjami, podobnie jak tablica. Z pomocą kolekcji PL SQL możesz wydajnie przetwarzać dane zbiorcze. W tym poście nauczę Cię bardzo podstawowych i najczęściej używanych poleceń dla kolekcji typu tabelarycznego PL SQL. Poniżej znajduje się typ tabeli w przykładzie Oracle PL SQL.

Najpierw musisz to zadeklarować w sekcji deklaracji bloku PL SQL. Oto składnia z przykładem:

Typ tabeli w przykładzie Oracle PL SQL

1. Zadeklaruj typy tabel PL SQL

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

Powyższe polecenia zadeklarują typ tabeli any_table_type typu wiersz tabeli emp, a następnie zainicjują za pomocą emp_rec. Po zadeklarowaniu można ręcznie przypisać do niego wartości. Poniżej znajduje się przykład:

2. Przypisz wartości do typów tabel 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;

Ponieważ tablice PL SQL są podobne do tablic, więc wartości należy przypisać podając numer elementu tablicy, jak pokazano powyżej. Poniżej znajduje się przykład, jak usunąć z kolekcji typów tabel PL SQL.

3. Usuwanie elementów z typów tabel 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;

Powyższy przykład usunie pierwszy element i wydrukuje tylko drugi. Gdy wykonasz powyższy blok, wynik będzie następujący:

xyz
Procedura PL/SQL zakończona pomyślnie.

Aby usunąć wszystkie elementy z typu tabeli PL SQL, poniżej znajduje się przykład:

emp_rec.delete;

4. Wypełnianie typów tabel PL SQL za pomocą zbiorczego zbierania

Poniżej znajduje się typ tabeli w przykładzie Oracle PL SQL, aby pobrać dane z tabeli emp, a następnie zapełni typ tabeli PL SQL za pomocą funkcji Bulk Collect, a następnie zaktualizuje tabelę emp za pomocą FORALL. Oto przykład:

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;

Możesz również sprawdzić moje narzędzie PL SQL Procedure Tool, aby wygenerować skrypt dla swojego rozwoju.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak usunąć wiele partycji interwałowych na podstawie daty?

  2. SQL Ciągle pojawia się błąd z ON UPDATE CASCADE

  3. Podłączanie Oracle do PostgreSQL

  4. Java:Jak wstawić CLOB do bazy danych Oracle

  5. Migracja danych między różnymi DBMS