Yang perlu Anda ubah hanyalah DECLARE
(menunjukkan awal dari blok anonim) ke CREATE PROCEDURE
, dengan variabel yang sedang Anda atur melalui variabel substitusi sebagai argumen formal; jadi alih-alih:
DECLARE
veno emp.empno%type:=&veno;
vsal emp.sal%type;
vexp number;
BEGIN
...
END;
/
Buatlah:
CREATE OR REPLACE PROCEDURE my_proc (veno IN emp.empno%type)
AS
vsal emp.sal%type;
vexp number;
BEGIN
...
END;
/
Anda kemudian dapat memanggilnya dari blok anonim, atau di SQL*Plus atau SQL Developer dengan execute
singkatan:
set serveroutput on
execute my_proc(&veno);
Contoh ini masih menggunakan variabel substitusi sehingga Anda akan dipromosikan untuk nilai yang akan digunakan, tetapi Anda juga dapat memberikan nomor secara langsung.
Baca selengkapnya tentang membuat prosedur dan jenis parameter .
Anda dapat sedikit menyederhanakan kode untuk mengurangi pengulangan dan permintaan ulang; mencari ekspresi kasus dan klausa kembali. Tapi itu tidak relevan secara langsung.