PL / SQL SELECT INTO (Polski)
Podsumowanie: w tym samouczku dowiesz się, jak używać języka PL / SQL SELECT INTO
do pobierania danych pojedynczego wiersza z tabeli do zmiennych.
Instrukcja PL / SQL SELECT INTO
to najprostszy i najszybszy sposób na pobranie pojedynczego wiersza z tabeli na zmienne. Poniższy rysunek ilustruje składnię instrukcji PL / SQL SELECT INTO
:
W tej składni liczba kolumny w variable_list
muszą być takie same, jak liczba zmiennych (lub liczba składników rekordu) w select_list
. Ponadto odpowiadający im typ danych musi być zgodny.
Oprócz klauzuli WHERE
możesz użyć innych klauzul w SELECT
, na przykład INNER JOIN
, GROUP BY
, HAVING
i UNION
.
Jeśli instrukcja SELECT
zwróci więcej niż jeden wiersz, Oracle podniesie TOO_MANY_ROWS
wyjątek. Jeśli instrukcja SELECT
nie zwróci żadnego wiersza, Oracle zgłosi wyjątek NO_DATA_FOUND
.
PL / SQL SELECT W PRZYKŁADACH
Do demonstracji użyjmy tabel customers
i contacts
w przykładowej bazie danych.
A) PL / SQL SELECT INTO – przykład wyboru jednej kolumny
W poniższym przykładzie użyto instrukcji SELECT INTO
w celu uzyskania nazwy klienta na podstawie identyfikatora klienta, który jest kluczem podstawowym elementu customers
table.
W tym przykładzie:
- Najpierw zadeklaruj zmienną
l_customer_name
, której typ danych zakotwiczenia do kolumn nazw w tabeli klientów. Ta zmienna będzie przechowywać nazwę klienta. - Po drugie, użyj instrukcji
SELECT INTO
, aby wybrać wartość z kolumny nazwy i przypisać ją dol_customer_name
zmienną. - Po trzecie, pokaż nazwę klienta za pomocą procedury
dbms_output.put_line
.
Ponieważ Tabela customers
ma tylko jeden wiersz z identyfikatorem klienta 100, blok kodu wyświetla nazwę klienta.
Jeśli nie było takiego wiersza, blok kodu zakończyłby się niepowodzeniem z nieobsłużonym NO_DATA_FOUND
wyjątkiem.
B) PL / SQL SELECT INTO – wybranie pełnego przykładu wiersza
Poniższy przykład pobiera cały wiersz z tabeli customers
dla określonego identyfikatora klienta:
Oto wynik:
W tym przykładzie:
- Najpierw zadeklaruj rekord na podstawie wiersza
customers
stół. Ten rekord będzie zawierał cały wiersz tabelicustomers
. - Po drugie, wybierz klienta o identyfikatorze 100 w
r_customer
rekord. - Po trzecie, pokaż nazwę klienta i stronę internetową.
C) PL / SQL SELECT INTO – przykład selekcji danych do wielu zmiennych
Poniższy przykład pobiera nazwy klienta i dane kontaktowe z tabel customers
i contacts
dla określonego identyfikatora klienta.
Oracle wydało następujące dane wyjściowe:
W tym przykładzie:
- Najpierw zadeklaruj trzy zmienne
l_customer_name
,l_contact_first_name
,l_contact_last_name
do przechowywania nazwy klienta i kontaktu. - Po drugie, użyj instrukcji
SELECT INTO
, aby pobrać nazwy klientów i osób kontaktowych o identyfikatorze klienta 100 zcustomers
icontacts
tabele do odpowiednich zmiennych -
l_customer_name
,l_contact_first_name
,l_contact_last_name
. - Po trzecie, wyświetl nazwiska klientów i osób kontaktowych.
PL / SQL SELECT INTO typowe błędy
Jeśli liczba kolumn i wyrażenie w SELECT
jest większa niż liczba zmiennych w klauzuli INTO
, Oracle zgłasza ten błąd:
Oracle zgłasza następujący błąd, jeśli liczba kolumn i wyrażenia w klauzuli SELECT
jest mniejsza niż liczba zmiennych w klauzuli INTO
:
Jeśli liczba zmiennych i elementów na liście wyboru jest taka sama, ale odpowiadające im typy danych nie są kompatybilne, więc Oracle nie może niejawnie przekonwertować z jednego typu na inny. Wystąpi następujący błąd:
Teraz powinieneś wiedzieć, jak używać PL / SQL SELECT INTO
instrukcji, aby pobrać pojedynczy wiersz z tabeli do zmiennych.
- Czy ten samouczek był pomocny?
- Tak Nie