存储过程

什么是存储过程(或者存储过程有什么作用)

  之前我们写的PLSQL可以进行表的操作,判断、循环,无法重复调用。现在将一个个PLSQL过程存储起来的PLSQL就被称之为存储过程。

语法:

  create or replace procedure  过程名称(参数列表) is
  begin

  end  [过程名称];

我们可以以通过PL/SQL Developer来自行创建

  1、第一个“Hello Word”

CREATE OR REPLACE PROCEDURE P_HELLO IS
BEGIN
    DBMS_OUTPUT.PUT_LINE('Hello word');
END P_HELLO;

  注意:(其中的is 可以换成as)

  它的调用执行

declare
 
begin
 p_hello;
end;

  如需在黑框中显示:exec   p_hello

  2、带输入参数的

--查询你某个员工(例如:7839号员工)的姓名和工资
CREATE OR REPLACE PROCEDURE P_QUERYNAMEANDSAL(IN_ID IN EMP.EMPNO%TYPE) IS
    --声明变量
    V_NAME EMP.ENAME%TYPE;
    V_SAL  EMP.SAL%TYPE;
BEGIN
    -- 查询emp表中某个员工的姓名和工资
    SELECT EMP.ENAME, EMP.SAL INTO V_NAME, V_SAL FROM EMP WHERE EMP.EMPNO = IN_ID;

    DBMS_OUTPUT.PUT_LINE('姓名:' || V_NAME || '工资:' || V_SAL);

END P_QUERYNAMEANDSAL;

  3、带输出输入参数的

--查询你某个员工(例如:7839号员工)的信息,将薪水返回
CREATE OR REPLACE PROCEDURE P_QUERYSAL(IN_ID IN EMP.EMPNO%TYPE, O_SAL OUT EMP.SAL%TYPE) IS

BEGIN

    SELECT EMP.SAL INTO O_SAL FROM EMP WHERE EMP.EMPNO = IN_ID;

END P_QUERYSAL;

  调用

DECLARE
    V_SAL EMP.SAL%TYPE;
BEGIN
    P_QUERYSAL(7839, V_SAL);
    DBMS_OUTPUT.PUT_LINE(V_SAL);
END;
原文地址:https://www.cnblogs.com/karrya/p/11632762.html