什么是存储过程(或者存储过程有什么作用)
之前我们写的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;