存储过程

Posted karrya

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了存储过程相关的知识,希望对你有一定的参考价值。

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

  之前我们写的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;

 

以上是关于存储过程的主要内容,如果未能解决你的问题,请参考以下文章

oracle存储过程里调用存储过程

sybase存储过程中怎么调用存储过程

九、存储过程中异常的处理

mysql 存储过程

如何编写存储过程

Oracle如何创建存储过程和如何调用存储过程