Podobnie jak w przypadku funkcji PL/SQL, procedura składowana jest samodzielną podprogram przeznaczony do wykonywania określonych zadań. Podobnie jak funkcje, procedury są nazywane blokami PL/SQL, dzięki czemu mogą być ponownie użyte, ponieważ są przechowywane w bazie danych jako obiekt bazy danych. Ale w przeciwieństwie do funkcji PL/SQL procedura składowana nie zwraca żadnej wartości .
Składnia procedur składowanych PL/SQL
CREATE [OR REPLACE] PROCEDURE pro_name (Parameter – List) IS [AUTHID DEFINER | CURRENT_USER] Declare statements BEGIN Executable statements END procedure name; /
Powyższa składnia procedury składowanej PL/SQL jest bardzo podobna do składni funkcji PL/SQL, którą widzieliśmy w poprzednim samouczku dotyczącym PL/SQL. Z wyjątkiem dwóch rzeczy:
- Nie ma klauzuli zwrotu.
Podstawowa różnica między funkcją PL/SQL a procedurą składowaną polega na tym, że w przeciwieństwie do funkcji procedura składowana nie zwraca żadnej wartości.
- Klauzula AUTHID.
Klauzula AUTHID służy do ustawiania modelu uprawnień dla procedur PL/SQL. Ta klauzula ma dwie flagi.
- DEFINIERA i
- CURRENT_USER
Ponieważ klauzula ta jest opcjonalna, w przypadku, gdy nie używasz klauzuli AUTHID, Oracle Engine domyślnie ustawi dla Ciebie uprawnienie (AUTHID) na DEFINER. Teraz musisz się zastanawiać, jakie są te prawa DEFINER i CURRENT_USER?
DEFINIER po prawej: Prawo definiujące to domyślne prawo przypisane do procedury przez silnik Oracle. To prawo oznacza, że każdy, kto ma uprawnienie do wykonywania w procedurze, zachowuje się tak, jakby był właścicielem schematu, w którym utworzono uprawnienie.
CURRENT_USER prawo: Ustawienie poziomu uprawnień procedury składowanej na uprawnienie current_user zastępuje uprawnienie domyślne, które jest definiującym i zmienia je na uprawnienia wywołującego.
Uprawnienie osoby wywołującej oznacza, że wywołujesz procedurę do działania na danych lokalnych i wymaga to replikacji obiektów danych w dowolnym uczestniczącym schemacie.
Kilka dodatkowych punktów dotyczących zapisanej procedury
- Możesz zdefiniować procedurę z lub bez parametrów formalnych.
- Parametrem może być wartość przekazana przez wartość lub pass-by-reference .
- Procedura będzie procedurą przekazywania przez wartość, gdy nie określisz trybu parametrów, ponieważ używa ona domyślnego trybu IN.
To tyle we wprowadzeniu do procedur składowanych PL/SQL. Myślę, że spodoba ci się również czytanie tych poniżej wymienionych blogów. Wszystkie blogi są pisane z myślą o rozmowie kwalifikacyjnej i certyfikacji bazy danych Oracle, koniecznie sprawdź je.
- Różnice między funkcją PL/SQL a procedurami składowanymi PL/SQL?
- Co to są tryby parametrów w funkcjach i procedurach PL/SQL?
- Co to są parametry formalne i rzeczywiste?
Zawsze pamiętaj:możesz pomóc innym w nauce i wesprzeć mnie, mój kanał, a także ten blog, dzieląc się nim ze znajomymi w mediach społecznościowych.
To wszystko chłopaki. Dziękuje za przeczytanie. Uważaj i życzę miłego dnia!