WYBIERZ DO
DECLARE
the_variable NUMBER;
BEGIN
SELECT my_column INTO the_variable FROM my_table;
END;
Upewnij się, że zapytanie zwraca tylko jeden wiersz:
Domyślnie instrukcja SELECT INTO musi zwracać tylko jeden wiersz. W przeciwnym razie PL/SQL zgłasza predefiniowany wyjątek TOO_MANY_ROWS, a wartości zmiennych w klauzuli INTO są niezdefiniowane. Upewnij się, że klauzula WHERE jest wystarczająco szczegółowa, aby dopasować tylko jeden wiersz
Jeśli nie zostaną zwrócone żadne wiersze, PL/SQL zgłasza NO_DATA_FOUND. Możesz zabezpieczyć się przed tym wyjątkiem, wybierając wynik funkcji agregującej, takiej jak COUNT(*) lub AVG(), tam gdzie jest to praktyczne. Te funkcje gwarantują zwrócenie pojedynczej wartości, nawet jeśli żaden wiersz nie spełnia warunku.
Instrukcja SELECT ... BULK COLLECT INTO może zwrócić wiele wierszy. Aby przechowywać wyniki, musisz skonfigurować zmienne kolekcji. Możesz zadeklarować tablice asocjacyjne lub tabele zagnieżdżone, które rosną w miarę potrzeb, aby pomieścić cały zestaw wyników.
Niejawny kursor SQL i jego atrybuty %NOTFOUND, %FOUND, %ROWCOUNT i %ISOPEN dostarczają informacji o wykonaniu instrukcji SELECT INTO.