1、存储过程和存储函数的创建和调用。
2、存储过程和存储函数在Java项目中的应用。
3、如何在应用程序中访问包下的存储过程。
存储过程、存储函数 表、视图、索引、序列、同义词 属于数据库的对象
定义:指存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数
相同点:完成特定功能的程序。
区别:是否能用return语句返回值
- 创建: 用CREATE PROCEDURE命令建立存储过程和存储函数
语法: create [or replace] procedure 过程名(参数列表)
AS
PLSQL子程序体;
--打印一个Hello world
--存储过程没有参数
create or replace procedure sayHelloworld
as
--说明部分 PL/SQL程序
begin
dbms_output.put_line('hello world');
end;
- 使用存储过程:
-- 方式1 exec sayHelloworld();
--方式2
set SERVEROUTPUT ON;
begin
sayHelloworld();
sayHelloworld();
end;
/
如图
二、带参数的存储过程 此存储过程包含了一个存储函数,包含一个输入函数
- 举例:为指定的员工,涨100块钱的工资;并且打印涨前和涨后的薪水
eno in number 确定eno 为输入类型的参数 类型为number
- create or replace procedure raisesalary(eno in number)
as
--定义一个变量保存薪水
pasl emp.sal%type;
begin
--得到涨之前的薪水
select sal into pasl from emp where empno = eno;
--给员工涨100块
update emp set sal = sal + 100 where empno = eno;
--需不需要commit?
--注意:一般不在存储过程或者存储函数中,commit和rollback
--打印
dbms_output.put_line('涨前: '|| pasl || ' 涨后: ' || (pasl+100));
end;
/
--Eg2 查询某个员工的姓名,月薪和职位
CREATE OR REPLACE procedure queryemp(eno in number,pename out varchar2,psal out varchar2,pjob out varchar2)
AS
BEGIN
select ename,sal,JOB into pename,psal,pjob from emp where empno = eno;
END;
/
in和out 参数
过程和函数都可以通过out指定一个或多个输出参数。我们可以利用out 参数,
在过程和函数中实现返回多个值
- 存储过程和存储函数都可以有out参数
- 存储过程和存储函数都可以有多个out参数
- 存储过程可以通过out参数来实现返回值