存储过程
Oracle存储过程是在数据库中存储的PL/SQL程序块,可以被应用程序调用执行。存储过程的优点是:
- 减少网络流量:应用程序可以通过一次调用执行存储过程,而不是多次发送SQL语句到数据库。
- 提高性能:存储过程是预编译的,所以数据库不需要重复编译,可以提高执行速度。
- 更易维护:当需要修改业务逻辑时,只需要修改存储过程,不需要修改调用它的所有应用程序。
创建存储过程的语法如下:
CREATE PROCEDURE procedure_name
(argument1 IN type,
argument2 IN OUT type,
...)
IS
-- 声明变量和常量
BEGIN
-- 执行PL/SQL代码
END;
例如,创建一个根据员工编号查询员工信息的存储过程:
CREATE PROCEDURE get_employee_info
(employee_id IN NUMBER)
IS
v_first_name employees.first_name%TYPE;
v_last_name employees.last_name%TYPE;
v_salary employees.salary%TYPE;
BEGIN
SELECT first_name, last_name, salary
INTO v_first_name, v_last_name, v_salary
FROM employees
WHERE employee_id = employee_id;
DBMS_OUTPUT.PUT_LINE('First Name: ' || v_first_name);
DBMS_OUTPUT.PUT_LINE('Last Name: ' || v_last_name);
DBMS_OUTPUT.PUT_LINE('Salary: ' || v_salary);
END;
调用存储过程的语法是:
EXECUTE procedure_name(argument1 => value1, argument2 => value2);
例如,调用上面的存储过程:
EXECUTE get_employee_info(employee_id => 100);