SQL简单存储过程

-- 根据员工编号查询员工姓名 带返回的参数
CREATE OR REPLACE PROCEDURE findEmp(empnoIn emp.empno%TYPE, enameOut OUT emp.ename%TYPE) IS
BEGIN
SELECT ename INTO enameOut FROM emp WHERE empno = empnoIn; -- no_data_found
EXCEPTION
WHEN no_data_found THEN //出现这种异常返回null
enameOut := NULL;
-- others 表示所有类型异常
END;

//定义数组

类型名称 是数组类型 数组中的元素类型
CREATE OR REPLACE TYPE myArray IS TABLE OF NUMBER(4);

CREATE OR REPLACE PROCEDURE deleteEmps(empnos myArray) IS
BEGIN

//for循环
FOR i IN empnos.FIRST .. empnos.LAST LOOP
DELETE FROM emp WHERE empno = empnos(i);
END LOOP;
COMMIT;
EXCEPTION //出现异常
WHEN OTHERS THEN ROLLBACK;
END;

//集合操作

list.count 返回集合大小
list.delete 删除集合所有元素
list.delete(3) 删除下标为3的元素
ist.delete(0, 3) 删除下标从0到3的元素
list.first 取得最小的下标
i := list.next(i) 取得下一个下标

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。