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

Nie znaleziono danych lub wystąpił błąd wyjątku zbyt wielu wierszy podczas zbiorczego wstawiania rekordów

ORA-01403 (Nie znaleziono danych) dzieje się, gdy zapytanie nic nie zwraca i próbujesz przekazać je do zmiennej przez INTO .

ORA-01422 (Zbyt wiele wierszy) ma miejsce, gdy zapytanie zwraca więcej niż 1 wiersz, który próbujesz zmieścić w INTO .

Zajmujesz się no_data_found od pierwszego SELECT zapytanie, ale nie obsługujesz too_many_rows od pierwszego zapytania. Jeśli Twój pierwszy SELECT zapytanie generuje no_data_found wyjątek, będzie obsługiwany z EXCEPTION , w przeciwnym razie wyrzuci too_many_rows wyjątek, niż nie powiedzie się jako drugi obraz.

Więc gdzie jest no_data_found dzieje się wyjątek? Prawdopodobnie od ciebie drugi SELECT zapytanie.

Powinieneś zapętlić pierwszy SELECT zapytanie, aby uniknąć no_data_found lub too_many_rows i upewnij się, że drugi SELECT zapytanie zwraca zawsze 1 wiersz.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sprawdź, czy wiersz istnieje

  2. Dwie instrukcje PLSQL z początkiem i końcem działają dobrze osobno, ale nie razem?

  3. Oracle Update Query brakuje słowa kluczowego SET — ORA97100 i ORA-00904

  4. Jak korzystać z globalnej tabeli tymczasowej Oracle?

  5. Zwróć tabelę w funkcji PL/SQL