Oracle11g学习-存储过程/存储函数

Oracle

1  存储过程与存储函数
1.1      存储过程

        存储过程是命名的pl/sql程序块,封装数据业务操作,具有模块化、可重用、可维护、更安全特点;并且可以被程序调用。一般有4类型的存储过程,分别为不带参数、带输入参数、带输出参数、带输入输出参数。

1.1.1  语法

【语法】

         CREATE [OR REPLACE] PROCEDURE <过程名>[(参数列表)] 

        IS|AS

         [局部变量声明]

         BEGIN

            可执行语句

        [EXCEPTION  异常处理语句]

         END [<过程名>];

 

OR REPLACE:如果系统已存在该存储过程,将被替换

参数列表:参数不需要声明长度,可选

参数变量的类型:in 为默认类型,表示输入; out 表示只输出;in out 表示即输入又输出;

 

 

【调用方式】

在PL/SQL块中直接使用过程名;

在PL/SQL程序外使用 exec[ute] <过程名>[(参数列表)];

1.1.2  无参存储过程

 -- 授予itcast创建存储过程的权限

grant create procedure to czy;

 

/*

使用无参存储过程,注意无参存储过程创建时不能使用()

*/

 

create or replace procedure pro_helloWorld

as

begin

 dbms_output.put_line('Hello World.');

end;

 

-- 方式一:调用存储过程,可加可不加()

begin

pro_helloWorld;

end;

 

-- 方式二:调用存储过程,可加可不加()

exec pro_helloWorld;

1.1.3  有输入参数存储过程

/*

使用有输入参存储过程

*/

createorreplaceprocedure pro_add_emp(

       p_empno in emp.empno%type,

       p_ename in varchar2,

       p_sal in number

)

as

begin

--将输入参数对应的数据插入emp

insert into emp(empno, ename,salvalues(p_empno, p_ename, p_sal);

end;

/

 

-- 调用存储过程,向emp表插入新数据

begin

 pro_add_emp(2001,'itcast2001',3000);

 pro_add_emp(2002,'itcast2002',2000);

 pro_add_emp(2003,'itcast2003',4000);

end;

1.1.4  有输出参数的存储过程

/*

使用有输出参存储过程,计算1到10的总和并通过参数返回

*/

create or replace procedure pro_1to10_sum(

       p_sum out number

)

as

 tem_sum number(4):=0;

begin

for i in1..10

loop

  tem_sum := tem_sum + i;

end loop;

 p_sum

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值