Oracle
 sql >> база данни >  >> RDS >> Oracle

Какво представляват PL/SQL съхранените процедури в базата данни на Oracle

Подобно на функциите PL/SQL, съхранената процедура е самостоятелна подпрограма, която е предназначена да изпълнява някои специфични задачи. Също подобно на функциите, процедурите се наричат ​​PL/SQL блокове, така че могат да бъдат използвани повторно, тъй като се съхраняват в базата данни като обект на база данни. Но за разлика от функциите PL/SQL, съхранената процедура не връща никаква стойност .

Синтаксис на PL/SQL съхранени процедури

CREATE [OR REPLACE] PROCEDURE pro_name (Parameter – List)
IS [AUTHID 	DEFINER | CURRENT_USER]
	Declare statements
BEGIN
	Executable statements 
END procedure name;
/ 

Горният синтаксис на съхранената процедура PL/SQL е много подобен на синтаксиса на PL/SQL функциите, който видяхме в последния урок за PL/SQL. С изключение на две неща:

  1. Няма клауза за връщане.

Основната разлика между функцията PL/SQL и съхранената процедура е, че за разлика от функциите, съхранената процедура не връща никаква стойност.

  1. Клауза AUTHID.

Клаузата AUTHID се използва за настройка на модела на права за PL/SQL процедурите. Тази клауза има два флага.

  1. DEFINER и
  2. CURRENT_USER

Тъй като тази клауза е незадължителна, така че в случай, че не използвате клауза AUTHID, Oracle Engine ще зададе правомощията (AUTHID) на DEFINER по подразбиране за вас. Сега сигурно се чудите какви са тези права на DEFINER и CURRENT_USER?

DEFINER вдясно: Правото на дефиниране е правото по подразбиране, присвоено на процедурата от oracle engine. Това право означава, че всеки с привилегия за изпълнение на процедурата действа така, сякаш е собственик на схемата, в която е създадена привилегията.

CURRENT_USER вдясно: Задаването на нивото на правомощия на съхранена процедура на правото на current_user отменя правото по подразбиране, което е дефиниращо, и го променя на правата на извикващия.

Правото на извикване означава, че вие ​​извиквате процедурата, за да действате върху вашите локални данни и изисква да репликирате обекти с данни във всяка участваща схема.

Някои допълнителни точки за съхранената процедура

  • Можете да дефинирате процедура със или без формални параметри.
  • Параметърът може да бъде или предаване по стойност или предаване по препратка .
  • Процедурата ще бъде процедура за предаване по стойност, когато не посочите режима на параметрите, защото използва режима IN по подразбиране.

Това е всичко във Въведение в PL/SQL съхранените процедури. Предполагам, че ще се насладите и на четенето на тези по-долу блогове. Всички блогове са написани, като вземете предвид интервюто за работа и сертифицирането на Oracle Database, не забравяйте да ги проверите.

  • Разликите между PL/SQL функцията и PL/SQL съхранените процедури?
  • Какво представляват режимите на параметри в PL/SQL функции и процедури?
  • Какво са формалните и действителните параметри?

Винаги помнете:Можете да помогнете на другите да учат и да подкрепите мен и моя канал, както и този блог, като го споделите с приятелите си в социалните си медии.

Това е момчета. Благодаря за четенето. Пазете се и приятен ден!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Свързване на Oracle към SQL Server от Windows

  2. Попълване на стойността на показвания елемент при заявка във формуляри на Oracle

  3. Какъв е правилният синтаксис на JDBC URL, ако се използват портфейли на Oracle?

  4. Функция TRANSLATE() в Oracle

  5. Как да върнете корекцията след неуспешна фаза на превключване в R12.2