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_namezmienną. - 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
customersstół. Ten rekord będzie zawierał cały wiersz tabelicustomers. - Po drugie, wybierz klienta o identyfikatorze 100 w
r_customerrekord. - 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_namedo 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 zcustomersicontactstabele 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