sql >> Database teknologi >  >> RDS >> Oracle

Sådan opretter du en procedure inde i en pakke i Oracle

I Oracle skal du først erklære proceduren i en pakkespecifikation og derefter oprette den fulde procedure i pakketeksten. Fordi hvis du vil forsøge at oprette procedure kun i pakkens krop uden dens erklæring i pakkespecifikationen, vil du få fejlen PLS-00302 komponent skal erklæres og ORA-06550 ugyldig PL/SQL blok. Så nedenfor giver jeg et eksempel på, hvordan man opretter en procedure inde i en pakke i Oracle.

I dette eksempel vil vi oprette en procedure update_comm for at opdatere provision i EMP-tabellen. Denne procedure tager parameteren for provisionsprocent.

Opret en procedure inde i en pakke i Oracle-eksempel

Erklære proceduren i pakkespecifikationen

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

Opret hele proceduren i pakketeksten

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 udføre denne procedure som følger:

BEGIN
/* Updating commission with 5% of salary */
emp_pkg.update_comm (5);
END;
  1. Hvad svarer til bigint i C#?

  2. Hvordan migrerer man en PostgreSQL-database til en SQLServer-database?

  3. Tjek, om en tabel er refereret af en fremmednøgle i SQL Server med OBJECTPROPERTY()

  4. Fordele ved at bruge Microsoft Access-skabeloner