oracle存储过程实例
时间: 2023-09-12 20:03:48 浏览: 102
好的,下面是一个简单的 Oracle 存储过程的示例:
```sql
CREATE OR REPLACE PROCEDURE get_employee_details
(
p_emp_id IN NUMBER,
p_emp_name OUT VARCHAR2,
p_emp_salary OUT NUMBER
)
AS
BEGIN
SELECT emp_name, emp_salary INTO p_emp_name, p_emp_salary
FROM employees
WHERE emp_id = p_emp_id;
END;
```
这个存储过程的功能是根据员工 ID 获取员工的姓名和薪资,并将结果存储在输出参数中。
首先,我们定义了一个名称为 `get_employee_details` 的存储过程,该存储过程有三个参数:`p_emp_id`(输入参数)、`p_emp_name`(输出参数)和 `p_emp_salary`(输出参数)。输入参数 `p_emp_id` 是一个数字类型的变量,用于指定要获取详细信息的员工 ID。输出参数 `p_emp_name` 和 `p_emp_salary` 分别是字符串类型和数字类型的变量,用于存储获取到的员工姓名和薪资。
在存储过程的主体中,我们使用了 `SELECT INTO` 语句来从员工表中获取指定员工的详细信息,并将结果保存在输出参数 `p_emp_name` 和 `p_emp_salary` 中。
最后,我们使用 `END` 来结束存储过程的定义。
调用该存储过程的方法如下:
```sql
DECLARE
emp_name VARCHAR2(50);
emp_salary NUMBER;
BEGIN
get_employee_details(1001, emp_name, emp_salary);
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || emp_name);
DBMS_OUTPUT.PUT_LINE('Employee Salary: ' || emp_salary);
END;
```
在上面的例子中,我们声明了两个变量 `emp_name` 和 `emp_salary`,并将它们作为参数传递给存储过程 `get_employee_details`。然后,我们使用 `DBMS_OUTPUT.PUT_LINE` 语句来显示获取到的员工姓名和薪资。
希望这个示例能够帮助你理解 Oracle 存储过程的基本语法和用法。
阅读全文