oracle写存储过程实例
时间: 2023-10-05 11:11:50 浏览: 46
以下是一个简单的 Oracle 存储过程示例:
```
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 employee
WHERE emp_id = p_emp_id;
END;
```
此存储过程接受一个员工 ID,然后将该员工的姓名和薪水作为 OUT 参数返回。首先声明了输入参数 `p_emp_id` 和两个输出参数 `p_emp_name` 和 `p_emp_salary`。然后在 BEGIN 和 END 块中编写了 SELECT 查询,将查询结果赋值给输出参数。最后使用 CREATE OR REPLACE PROCEDURE 语句创建了这个存储过程。
相关问题
oracle存储过程实例
下面是一个简单的 Oracle 存储过程实例:
创建一个名为 get_employee 的存储过程,该存储过程接受一个 employee_id 参数,并返回该员工的姓名和薪资。
```
CREATE OR REPLACE PROCEDURE get_employee (p_employee_id IN NUMBER, p_name OUT VARCHAR2, p_salary OUT NUMBER) AS
BEGIN
SELECT first_name || ' ' || last_name, salary
INTO p_name, p_salary
FROM employees
WHERE employee_id = p_employee_id;
END;
```
使用存储过程:
```
DECLARE
v_name employees.first_name%TYPE;
v_salary employees.salary%TYPE;
BEGIN
get_employee(100, v_name, v_salary);
DBMS_OUTPUT.PUT_LINE('Name: ' || v_name || ', Salary: ' || v_salary);
END;
```
在执行存储过程之前,需要将该存储过程编译到 Oracle 数据库中。可以使用 sqlplus 或 SQL Developer 工具运行上述代码。
oracle存储过程实例详解
Oracle存储过程是一段预定义的PL/SQL代码,它可以在Oracle数据库中执行。它是一种可重复使用的程序代码,可以被调用多次。存储过程通常用于执行一系列相关的操作,这些操作可以在一个单一的事务中执行,因此可以保证数据的完整性和一致性。
以下是一个简单的Oracle存储过程的实例:
```
CREATE OR REPLACE PROCEDURE get_employee_details (emp_id IN NUMBER, emp_name OUT VARCHAR2, emp_salary OUT NUMBER)
IS
BEGIN
SELECT name, salary INTO emp_name, emp_salary FROM employee WHERE id = emp_id;
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || emp_name);
DBMS_OUTPUT.PUT_LINE('Employee Salary: ' || emp_salary);
END;
```
在上面的示例中,存储过程名称是get_employee_details,它有三个参数:emp_id(输入参数)、emp_name(输出参数)和emp_salary(输出参数)。存储过程的主体包含一个SELECT语句,它从employee表中检索员工的姓名和薪水,并将它们存储在emp_name和emp_salary变量中。最后,使用DBMS_OUTPUT.PUT_LINE函数将员工的姓名和薪水输出到控制台。
要调用这个存储过程,可以使用以下语句:
```
DECLARE
emp_name VARCHAR2(50);
emp_salary NUMBER;
BEGIN
get_employee_details(101, emp_name, emp_salary);
END;
```
在上面的示例中,调用了get_employee_details存储过程,并将101作为输入参数传递。输出参数emp_name和emp_salary将在存储过程执行后包含员工的姓名和薪水。