sql >> Databáze >  >> RDS >> Oracle

Jak vytvořit uložené procedury PL/SQL s parametry v databázi Oracle

V předchozím tutoriálu jsme probrali, jak vytvořit uloženou proceduru bez parametrů. Někdy se ale může stát, že budete muset vytvořit uloženou proceduru, která přijímá parametry. Koneckonců, tyto podprogramy jsou tu proto, aby vám pomohly co možná nejjednodušším způsobem vyřešit váš problém. Proto se dnes v tomto blogu naučíme, jak vytvářet uložené procedury s parametry v Oracle Database

Pro ty, kteří začínají s programováním PL/SQL a zajímali by se, co je uložená procedura? Nebojte se, připravil jsem pro vás samostatný blog, který vysvětluje základní teorii uložené procedury. Tento blog můžete zkontrolovat zde.

Pojďme se tedy podívat na ukázku, jak vytvořit uloženou proceduru PL/SQL s parametry!

Krok 1:Vytvořte záhlaví uložené procedury

V záhlaví procedury definujeme její podpis.

CREATE OR REPLACE PROCEDURE emp_sal
(dep_id NUMBER, sal_raise NUMBER) 
IS

Záhlaví je velmi podobné tomu, které jsme viděli v minulém tutoriálu, kromě toho, že tentokrát náš postup přijímá parametry, kterými jsou dep_id a sal_raise NUMBER datového typu.

Krok 2:Vytvořte spouštěcí sekci uložené procedury

V sekci provádění zapisujeme všechny spustitelné příkazy, které definují fungování uložené procedury.

BEGIN
  UPDATE employees SET salary = salary * sal_raise WHERE department_id = dep_id;
END;
/

Pro lepší pochopení jsem se snažil tento kód co nejvíce zjednodušit. V sekci provádění máme pouze jeden příkaz DML, který je UPDATE. Pomocí tohoto aktualizujeme sloupec platů v tabulce zaměstnanců.

Můžete takto napsat obchodní logiku, pak ji zabalit do procedury a v případě potřeby ji zavolat ve své aplikaci. To vám poskytne větší kontrolu nad vaší aplikací. Také vás to ušetří opakovaného psaní stejného kódu.

Tento postup akceptuje dva parametry, kterými je ID oddělení a číselná hodnota pro zvýšení platu. První parametr, kterým je dep_id, se používá k určení ID oddělení. Druhý parametr, kterým je sal_raise, se stane multiplikačním faktorem ve zvýšení platu.

Pro hlubší pochopení toho samého se podívejte na video tutoriál na mém kanálu YouTube. Tam jsem podrobně vysvětlil každý jednotlivý řádek a klíčové slovo výše uložené procedury.

Pojďme spojit všechny výše uvedené části kódu do jediné jednotky s názvem PL/SQL.

Uložená procedura pro zvýšení platu v celém oddělení

CREATE OR REPLACE PROCEDURE emp_sal( dep_id NUMBER, sal_raise NUMBER) 
IS
BEGIN
  UPDATE emp SET salary = salary * sal_raise WHERE department_id = dep_id;
END;
/

Jakmile úspěšně vytvoříte uloženou proceduru, musíte ji zavolat ve svém programu nebo kódu. V minulém tutoriálu jsem vám ukázal různé způsoby volání procedury v databázi Oracle. Můžete se podívat na tento tutoriál.

Toto je návod, jak vytvořit uloženou proceduru PL/SQL s parametry v databázi Oracle. Sdílejte to prosím na svých sociálních sítích a pomozte ostatním v učení.

To je pro dnešek vše. Krásný den!


  1. Jak používat MySQLdb s Pythonem a Django v OSX 10.6?

  2. Minimalizace dopadu DBCC CHECKDB:DO a DONT

  3. Nová správa uživatelů a LDAP v ClusterControl 1.8.2

  4. Jak ukončím skript v SQLPlus, když dojde k chybě, a vrátím se na výzvu SQLPlus, aniž bych musel SQLPlus odpojit nebo ukončit?