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

Kolekcja PL/SQL:zagnieżdżona tabela w bazie danych Oracle

Jak utworzyć zagnieżdżoną tabelę w bloku PL/SQL

Witamy w drugim samouczku z serii PL/SQL Collection. W tym samouczku nauczymy się pierwszego typu kolekcji, którym jest „Tabela zagnieżdżona”. Tabela wewnątrz tabeli jest najprostszą definicją, jaką można wymyślić i jest poprawna pod każdym względem, ponieważ tabela osadzona w innej tabeli jest dokładnie tym, co sugeruje nazwa zagnieżdżona tabela.

Ale jeśli musimy zdefiniować kolekcję „Tabela zagnieżdżona” w bardziej wymyślny i techniczny sposób, możemy powiedzieć, że zagnieżdżone tabele są strukturami jednowymiarowymi, które są trwałe i nieograniczone z natury. Są one dostępne w SQL oraz PL/SQL i mogą być używane w tabelach, rekordach i definicjach obiektów. Ponieważ jest to nieograniczona kolekcja PL/SQL, dlatego może zawierać dowolną liczbę elementów w losowo uporządkowanym zestawie.

Definicja
Tabele zagnieżdżone to jednowymiarowe struktury, które mają charakter trwały i nieograniczony. Są one dostępne w SQL oraz PL/SQL i mogą być używane w tabelach, rekordach i definicjach obiektów. Ponieważ jest to nieograniczona kolekcja PL/SQL, dlatego może zawierać dowolną liczbę elementów w nieuporządkowanym zestawie.

Sugerowana lektura:Wprowadzenie do kolekcji PL/SQL

Zagnieżdżoną tabelę można utworzyć wewnątrz bloku PL/SQL lub w bazie danych jako obiekt typu kolekcji (obiekt schematu). W przypadku poprzedniej tabeli zagnieżdżonej zachowuje się jak tablica jednowymiarowa bez żadnego typu indeksu ani górnego limitu.

Na razie skoncentrujmy się na tym, jak utworzyć tabelę zagnieżdżoną w bloku PL/SQL, a resztę zostawmy na następny samouczek.

Składnia tworzenia tabeli zagnieżdżonej

DECLRE 
TYPE nested_table_name IS TABLE OF element_type [NOT NULL];

Dokładnie wyjaśniłem tę składnię w moim samouczku wideo na moim kanale YouTube. Gorąco polecam zapoznać się z tym filmem.

Przykład:jak utworzyć zagnieżdżoną tabelę w bloku PL/SQL?

Poniższy przykład służy tylko do zademonstrowania, jak utworzyć zagnieżdżoną tabelę, nie ma w tym nic nadzwyczajnego.

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;
 /

Powyższy przykład jest bardzo prostym, w którym stworzyliśmy zagnieżdżoną tabelę i nazwaliśmy ją „moja_zagnieżdżona_tabela” (linia numer 3). W następnym wierszu (linia 4) utworzyliśmy instancję tej samej kolekcji i użyliśmy jej do zainicjowania zagnieżdżonej tabeli i zapisania w niej niektórych danych. W sekcji wykonania uzyskujemy dostęp do przechowywanych danych indywidualnie za pomocą numeru indeksu, w ten sam sposób, w jaki robiliśmy to w tablicach.

Zamiast ręcznie uzyskiwać dostęp do danych pojedynczo za pomocą indeksu, możemy użyć pętli i cyklicznie przechodzić przez każdy element zagnieżdżonej tabeli kolekcji.

 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 kolejny przykład tworzenia zagnieżdżonej tabeli, w której przechodzimy przez dane i wyświetlamy je użytkownikowi za pomocą pętli For.

To tyle, jak tworzyć zagnieżdżone tabele w blokach PL/SQL. Bądź na bieżąco, ponieważ w następnym samouczku dowiemy się, jak tworzyć zagnieżdżone tabele jako obiekty kolekcji bazy danych i jakich wszystkich widoków słowników danych można użyć, aby uzyskać informacje o zagnieżdżonych tabelach przechowywanych w bazie danych.

To wszystko. Dziękujemy za przeczytanie i życzę miłego dnia!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DBCA Utwórz złą bazę danych REMOTE_LISTENER

  2. Jak skonfigurować połączony serwer z bazą danych Oracle na SQL 2000/2005?

  3. Opis przypadku Oracle z poradami i przykładami

  4. Funkcja LOWER() w Oracle

  5. Proces aktualizacji krok po kroku do aktualizacji R12.2 część -2 (główny sterownik aktualizacji dla R12.2.0)