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

Jak tworzyć VARRAY jako element bloku PL/SQL w bazie danych Oracle

Dzisiaj zrobimy praktyczną demonstrację, aby dowiedzieć się, jak utworzyć VARRAY w Oracle Database, więc zachęcamy do odwiedzenia ostatniego samouczka, aby zapoznać się ze wszystkimi niezbędnymi teoriami dotyczącymi VARRAY. Jak zawsze postaram się, aby przykład był jak najprostszy. Więc jeśli dopiero zaczynasz programować, nie martw się, mam cię!

Wcześniej omawialiśmy we wstępie do PL/SQL VARRAY, które podobnie jak zagnieżdżone tabele VARRAY mogą być tworzone

  • Jako członek PL/SQL Block i
  • Jako obiekt bazy danych.

Dzisiaj dowiemy się, jak tworzyć VARRAYs jako członek bloku PL/SQL, a resztę zostawimy na przyszłe samouczki.

Krok 1:Zdefiniuj Varray w bloku PL/SQL

Możesz zdefiniować varray tylko wewnątrz sekcji deklaracji bloku PL/SQL.

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

W powyższym kodzie stworzyliśmy VARRAY i nazwaliśmy go inBlock_vry. Ta varray jest w stanie pomieścić 5 elementów typu danych Number.

Krok 2:Zainicjuj Varray

Inicjalizację zmiennej varray można łatwo wykonać za pomocą zmiennej collection. Aby zainicjować VARRAY, najpierw zdefiniujemy zmienną kolekcji, a następnie użyjemy jej do inicjalizacji.

vry_obj inBlock_vry  :=  inBlock_vry();

W powyższym kodzie utworzyliśmy zmienną kolekcji o nazwie vry_obj i użyliśmy jej do zainicjowania zmiennej inBlock_vry.

Informacje:
Niektóre książki odnoszą się do zmiennej kolekcji jako do obiektu kolekcji, więc nie daj się pomylić, ponieważ obie są takie same .

Krok 3:Jak wstawić dane do VARRAY

Wstawianie danych do varray jest bardzo podobne do wstawiania danych do tablicy innego języka programowania. Możesz wstawić dane bezpośrednio do każdej komórki zmiennej, używając numeru indeksu, lub możesz użyć LOOP do wypełnienia zmiennej.

Jak wstawić dane do VARRAY za pomocą indeksu komórki

Jak wiemy, struktura komórki kolekcji PL/SQL składa się z komórki z indeksem zwanym indeksem. Możemy użyć tego indeksu do wstawienia danych do varray.

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

Sekcja wykonania -1

W powyższym kodzie napisaliśmy sekcję wykonania bloku PL/SQL. Składa się z 3 wykonywalnych instrukcji. Te trzy stwierdzenia to –

Wiersz 6:Stwierdzenie 1

Pierwsza instrukcja to wywołanie procedury EXTEND. W tej instrukcji przydzielamy pamięć każdej komórce VARRAY za pomocą procedury EXTEND.

Wiersz 7:Stwierdzenie 2

W drugim poleceniu przypisujemy wartość liczbową (wartość uzyskaną z wyrażenia mnożenia arytmetycznego) do pierwszej komórki zmiennej (komórka o numerze indeksu 1).

Informacje:
W kolekcji PL/SQL numer indeksu VARRAY komórki zaczyna się od 1, podczas gdy numer indeksu komórek w tablicy zaczyna się od 0.

Wiersz 8:Stwierdzenie 3

Trzecia instrukcja to instrukcja wyjściowa, w której wyświetlamy użytkownikowi wartość, którą zapisaliśmy w komórce 1 zmiennej ZMIANA.

W ten sposób możesz przechowywać i wyświetlać wartość przechowywaną w pojedynczej komórce varray. Ten proces jest dobry tylko wtedy, gdy masz krótki varray. W przeciwnym razie nie jest to skuteczny sposób. Innym sposobem wstawiania danych do Varray jest użycie Loop.

Zalecana lektura:Wprowadzenie do pętli PL/SQL

Jak wstawić dane do VARRAY za pomocą pętli PL/SQL

Najpopularniejszym sposobem radzenia sobie z danymi kolekcji jest użycie pętli. Większość programistów jest przyzwyczajona do używania pętli do przechodzenia przez dane z dowolnego rodzaju tablicy, ponieważ jest to łatwe, mniej czasochłonne i ma mniej linii kodu, dzięki czemu kod jest czystszy i łatwy do odczytania. Krótko mówiąc, jest to łatwe i wydajne.

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

Sekcja wykonania -2

Szczegółowo wyjaśniłem powyższy kod w samouczku wideo na moim kanale YouTube, który możesz obejrzeć tutaj.

Aby zminimalizować zamieszanie, wyjaśnię tutaj dwie główne funkcje użyte w powyższej sekcji wykonania (Sekcja wykonania – 2), którymi są – Limit &Extend.

Zrozumienie działania powyższego kodu wymaga znajomości pętli for PL/SQL. Na szczęście zrobiłem szczegółowy samouczek dotyczący pętli For-Loop, który możesz przeczytać tutaj.

Limit (linia 6): Limit to metoda zbierania, która zwraca maksymalną liczbę elementów, które są dozwolone w zmiennej VARRAY. W naszym przypadku maksymalna dozwolona liczba elementów w VARRAY wynosi 5 (linia 3), co z kolei staje się tutaj górną granicą pętli For-Loop.

Przedłuż (wiersz 8): Extend to procedura, która służy do przydzielania pamięci i dołącza element do VARRAY. W przypadku użycia bez argumentu (sekcja wykonania-2 linia 8) dołącza pojedynczy element null, a jeśli jest używany z argumentem EXTEND (n) (sekcja wykonania -1 linia 6) to dodaje n liczb do kolekcji. Gdzie n jest liczbą całkowitą podaną jako argument procedury EXTEND.

To jest samouczek PL/SQL na temat tworzenia kolekcji VARRAY w Oracle Database jako członka bloku PL/SQL. Upewnij się, że polubiłeś ten blog, podziel się nim ze znajomymi i zasubskrybuj mój kanał, ponieważ wiele takich samouczków dopiero nadejdzie. Dzięki 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. Oracle 12cR2 teraz w wersji beta

  2. Oracle:procedura składowana Java wysyłająca wiadomość JMS

  3. Jak używać bieżącej daty w zapytaniu HQL z bazą danych Oracle?

  4. Optymalizacja zapytania SELECT, które działa wolno w Oracle, które działa szybko w SQL Server

  5. Jak zobaczyć aktualną instrukcję Oracle SQL, która jest wykonywana?