有名字的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;
/