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

Jak stworzyć procedurę wewnątrz pakietu w Oracle?

W Oracle najpierw musisz zadeklarować procedurę w specyfikacji pakietu, a następnie utworzyć pełną procedurę w treści pakietu. Ponieważ jeśli będziesz próbował stworzyć procedurę tylko w treści pakietu bez jej deklaracji w specyfikacji pakietu to dostaniesz błąd komponent PLS-00302 musi być zadeklarowany i ORA-06550 niepoprawny blok PL/SQL. Poniżej podaję przykład, jak utworzyć procedurę wewnątrz pakietu w Oracle.

W tym przykładzie stworzymy procedurę update_comm do aktualizacji prowizji w tabeli EMP. Ta procedura przyjmie parametr dotyczący procentu prowizji.

Utwórz procedurę wewnątrz pakietu w przykładzie Oracle

Zadeklaruj procedurę w specyfikacji pakietu

CREATE OR REPLACE PACKAGE emp_pkg
IS
PROCEDURE update_comm (i_comm IN emp.comm%TYPE);
END emp_pkg;

Utwórz pełną procedurę w treści pakietu

CREATE OR REPLACE PACKAGE BODY emp_pkg
IS
PROCEDURE update_comm (i_comm IN emp.comm%TYPE)
IS
BEGIN

UPDATE emp
SET comm = sal * NVL (i_comm, 0) / 100;

COMMIT;
END update_comm;
END emp_pkg;

Teraz możesz wykonać tę procedurę w następujący sposób:

BEGIN
/* Updating commission with 5% of salary */
emp_pkg.update_comm (5);
END;
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. czy jest jakaś funkcja do tłumaczenia danych w sql

  2. jak wybrać tylko wiersz z sekwencją max bez użycia podzapytania?

  3. Jak korzystać z rownum

  4. Korzystanie z Oracle JDeveloper 12c z Oracle Database 12c na platformie Oracle Cloud, część 1

  5. Zamówienie niestandardowe w Oracle SQL