PLSQL中的存储过程和函数

PLSQL中的存储过程和函数

语法:

create [or replace] procedure procedure_name
    [(parament1 [model1] datatype1,
    parament2 [model2] datatype2,
    ...)]
is|as
PL/SQL Block;    

举例:

create or replace procedure raise_salary
    (p_id in employees.employee_id%type)
is
begin
    update employees
    set salary = salary * 1.10
    where employee_id = p_id;
end;

PLSQL存储过程d额参数模式:
+ in 默认模式,用于把值传给过程;参数可以是常量、变量、表达式;可以赋予默认值
+ out 必须显式指定;用于把值从过程返回给调用环境;必须是个变量;不能赋予默认值
+ in out 必须显式指定;用于把变量传给过程,并返回给调用环境;必须是个变量;不能赋予默认值

参数传递方式 ( 按顺序传递 或者 使用=>符号传递 ) :

create or replace procedure query_emp(p_id in employees.employee_id%type
                                    ,p_name out employees.last_name%type
                                    ,p_salary out employeees.salary%type
                                    ,p_comm out empployees.commission_pct%type )
begin
    select last_name,salary,commission_pct
    into p_name,p_salary,p_comm
    from employees
    where employee_id = p_id;
end query_emp;

PLSQL存储函数:

CREATE OR REPLACE FUNCTION get_sal(p_id in number) RETURN NUMBER IS
    v_salary NUMBER;
BEGIN
    SELECT salary
    INTO   v_salary
    FROM   employees
    WHERE  employee_id = p_id;
    RETURN v_salary;
END get_sal;

调用:

select get_sal(100) from dual;

你可能感兴趣的:(PLSQL)