sql >> Databasteknik >  >> RDS >> Oracle

Hur man skapar en procedur i ett paket i Oracle

I Oracle måste du först deklarera proceduren i en paketspecifikation och sedan skapa hela proceduren i paketets kropp. För om du försöker skapa en procedur endast i paketets kropp utan dess deklaration i paketspecifikationen kommer du att få felet PLS-00302 komponent måste deklareras och ORA-06550 ogiltigt PL/SQL-block. Så nedan ger jag ett exempel på hur man skapar en procedur i ett paket i Oracle.

I det här exemplet kommer vi att skapa en procedur update_comm för att uppdatera provision i EMP-tabellen. Denna procedur tar parametern för provisionsprocent.

Skapa en procedur i ett paket i Oracle-exempel

Deklarera förfarandet i paketspecifikationen

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

Skapa hela förfarandet i Package Body

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;

Nu kan du utföra denna procedur enligt följande:

BEGIN
/* Updating commission with 5% of salary */
emp_pkg.update_comm (5);
END;
  1. Hur RANK() fungerar i SQL Server

  2. Oracle som lösning på muterande tabeller

  3. Kan någon förklara vad MERGE-satsen verkligen gör i Oracle?

  4. Hur får man effektiv Sql Server-deadlock-hantering i C# med ADO?