Oracle快速入门(游标,抛出自定义异常信息,存储过程)
-- 创建一个游标,用于遍历所有员工的姓名和薪水
DECLARE
CURSOR emp_cursor IS
SELECT first_name, salary
FROM employees
ORDER BY first_name;
v_first_name employees.first_name%TYPE;
v_salary employees.salary%TYPE;
BEGIN
-- 打开游标
OPEN emp_cursor;
-- 遍历游标中的所有记录
LOOP
FETCH emp_cursor INTO v_first_name, v_salary;
EXIT WHEN emp_cursor%NOTFOUND;
-- 输出每个员工的姓名和薪水
DBMS_OUTPUT.PUT_LINE('员工名字:' || v_first_name || ',薪水:' || v_salary);
END LOOP;
-- 关闭游标
CLOSE emp_cursor;
END;
/
-- 创建一个存储过程,接收员工ID和薪水,如果薪水低于30000则更新薪水
CREATE OR REPLACE PROCEDURE update_salary(p_employee_id IN employees.employee_id%TYPE, p_new_salary IN employees.salary%TYPE)
AS
BEGIN
IF p_new_salary < 30000 THEN
-- 抛出自定义异常
RAISE_APPLICATION_ERROR(-20001, '薪水不能低于30000');
ELSE
-- 更新员工薪水
UPDATE employees
SET salary = p_new_salary
WHERE employee_id = p_employee_id;
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS THEN
-- 输出异常信息
DBMS_OUTPUT.PUT_LINE('异常错误代码:' || SQLCODE || ',错误信息:' || SQLERRM);
ROLLBACK;
END;
/
这个示例展示了如何在Oracle中使用游标进行遍历操作,如何使用DBMS\_OUTPUT.PUT\_LINE输出信息,如何创建存储过程并处理异常。同时,它也演示了如何在存储过程中使用IF-ELSE语句和异常处理来实现基本的业务逻辑。
评论已关闭