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

Czy dozwolone jest używanie SELECT wewnątrz potokowej funkcji tabeli PL/SQL?

  1. zazwyczaj ograniczenia DML dotyczą tylko instrukcji modyfikacji (UPDATE, DELETE...), więc SELECT powinien być OK. Spróbuję znaleźć konkretne oświadczenie Oracle.

  2. Widoki byłyby Twoim pierwszym narzędziem do modularyzacji często używanych zapytań.

  3. Funkcje mają wadę w stosunku do widoków:jeśli są wywoływane z innego SELECT, nie są wykonywane w tym samym momencie, co główny SELECT. Każde wywołanie SELECT jest spójne, ale ponieważ SELECT znajdują się w kodzie funkcji, a nie w głównym SQL, możesz zwrócić niespójne wyniki. Nie jest to możliwe w przypadku widoków i podselekcji:jeśli duża instrukcja wywołuje widok, widok jest tworzony w tym samym momencie, co zapytanie główne.

Aktualizacja :odnośnie Twojego komentarza na temat sparametryzowanych zapytań

Można budować widoki parametryczne, czyli widoki zależne od zmiennych ustawionych przed wykonaniem. Oto przykład na AskTom pokazując, jak możesz to zrobić za pomocą userenv('client_info') lub dbms_session.set_context .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PL/SQL:przekonwertować jawny kursor na kursor referencyjny?

  2. Wybierz w błędach PL-SQL:INTO After Select

  3. Zwracanie parametrów w instrukcjach wstawiania Oracle SQL

  4. Funkcja dzielenia w Oracle na wartości oddzielone przecinkami z automatyczną sekwencją

  5. Dlaczego DECODE Oracle daje mi inną wartość niż NVL?