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ą do l_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 tabeli customers.
  • 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 z customers i contacts 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

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *