Oracle PL/SQL高级应用 存储过程

有名字的Plsql块,成为Oracle的对象,在以后用到时可以直接调用。

CREATE OR REPLACE PROCEDURE myproc(id IN varchar2) IS     -IN 为输入参数 参数不加长度
name varchar2(10);            --这里定义的变量必须给长度
BEGIN
SELECT books_name INTO name FROM books WHERE books_id=id;
DBMS_OUTPUT.PUT_LINE(name);
END myproc;
/

执行方法:

1.SQL>EXECUTE myproc('123');

  这种方法是存储过程没有参数或是参数为 IN 类型 不是 OUT INOUT

2.SQL>DECLARE

    tid varchar2(10);

    BEGIN

    tid:='0001';

    myproc(tid);

    END;

    /

3.SQL>BEGIN

    myproc('0001');

    END;

    /

    这种方式是送参为常量

输出参数的存储过程:

CREATE OR REPLACE PROCEDURE myproc2(id varchar2,name OUT varchar2) IS   --id的参数类型为IN 是系统默认IN
BEGIN
SELECT books_name INTO name FROM books WHERE books_id=id;
END;
/

执行方法:

SQL>DECLARE

   tid varchar2(10);

   tname varchar2(10);

   BEGIN

   tid:='0001';

   myproc2(tid,tname);

   END;

   /

原文地址:https://www.cnblogs.com/weixiaole/p/3240551.html