📜  SQL中的存储过程是什么?

📅  最后修改于: 2021-09-08 16:25:56             🧑  作者: Mango

创建存储过程是为了在数据库上执行一项或多项 DML 操作。它只不过是一组 SQL 语句,它们以参数的形式接受某些输入并执行某些任务,并且可能会或可能不会返回值。

语法:创建过程

CREATE or REPLACE PROCEDURE name(parameters)
IS
variables;
BEGIN
//statements;
END;

最重要的部分是参数。参数用于将值传递给过程。有3种不同类型的参数,它们如下:

  1. 在:
    这是过程的默认参数。它总是从调用程序接收值。
  2. 出去:
    此参数始终将值发送到调用程序。
  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