实例一:创建一个带有输入参数的存储过程

 

--1;创建输入参数的存储过程   proce1是存储过程的名字  v_empno IN 意思是v_empno是一个输入类型的参数  类型和empnew表中的enpno字段类型一致


CREATE OR REPLACE PROCEDURE proce1
( v_empno IN empnew.empno%TYPE )
IS
BEGIN
--根据员工号删除指定的员工信息
DELETE FROM empnoew WHERE empno = v_empno ; //指定的员工是传来的参数
--判断是否删除成功
IF SQL%NOTFOUND THEN


--20000--20999之间 错误号
RALSE_APPLICATION_ERROR(-20008,'指定删除的的员工不存在');

ELSE

DBMS_OUTPUT.PUT.put_line('删除成功!');


END IF;
END;

实例二 创建带有输出参数的存储过程

2、创建带有输入参数的存储过程
CREATE OR REPLCAE PROCEDURE proce2

(v_deptno IN NUMBER , v_avgsal OUT NUMBER, v_cnt OUT NUMBER)

IS
BEGIN
SELECT AVG(sal) ,COUNT(*)
INTO v_avgsal ,v_cnt
FROM emp
WHERE deptno=v_deptno;
EXCEPTION
WHERE NO_DATA_FOUND THEN
DBMS_OUTPUT.put_line('没有此部门');
WHEN OTHERS THEN
DBMS_OUTPUT.put_line(SQLERRM);
END;

创建带有输入输出参数的存储过程

--3、创建带有输入输出参数的存储过程

CREATE OR REPLACE PROCEDURE proc3
(v_num1 IN OUT NUMBER , v_num2 IN OUT NUMBER )

AS
v_temp NUMBER :-0;

BEGIN

v_temp:=v_num1;
v_num1:=v_num2;
v_num2:=v_temp;

END;