-
zazwyczaj ograniczenia DML dotyczą tylko instrukcji modyfikacji (UPDATE, DELETE...), więc SELECT powinien być OK. Spróbuję znaleźć konkretne oświadczenie Oracle.
-
Widoki byłyby Twoim pierwszym narzędziem do modularyzacji często używanych zapytań.
-
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
.