创建存储过程是为了在数据库上执行一项或多项 DML 操作。它只不过是一组 SQL 语句,它们以参数的形式接受某些输入并执行某些任务,并且可能会或可能不会返回值。
语法:创建过程
CREATE or REPLACE PROCEDURE name(parameters)
IS
variables;
BEGIN
//statements;
END;
最重要的部分是参数。参数用于将值传递给过程。有3种不同类型的参数,它们如下:
- 在:
这是过程的默认参数。它总是从调用程序接收值。 - 出去:
此参数始终将值发送到调用程序。 - 进出:
此参数执行这两种操作。它从调用程序接收值并将值发送到调用程序。
例子:
想象一个以 emp_table 命名的表存储在数据库中。我们正在编写一个程序,用 1000 更新员工的工资。
CREATE or REPLACE PROCEDURE INC_SAL(eno IN NUMBER, up_sal OUT NUMBER)
IS
BEGIN
UPDATE emp_table SET salary = salary+1000 WHERE emp_no = eno;
COMMIT;
SELECT sal INTO up_sal FROM emp_table WHERE emp_no = eno;
END;
- 声明一个变量来存储来自 Procedure 的值:
VARIABLE v NUMBER;
- 程序的执行:
EXECUTE INC_SAL(1002, :v);
- 要检查更新的工资,请使用 SELECT 语句:
SELECT * FROM emp_table WHERE emp_no = 1002;
- 或使用打印语句:
PRINT :v