oracle存储过程和自定义函数

来源:互联网 发布:手机淘宝如何管理店铺 编辑:程序博客网 时间:2024/04/30 16:57

(学习中遇到的相关问题PLSQL是什么?)

数据库的对象:表、视图、索引、序列、同义词、存储过程存储函数

存储过程和存储函数:指存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数。

相同点:完成特定功能的程序。

区别:是否用return语句返回值。存储函数可以通过return返回值,而存储过程不能。


第一个存储过程,打印helloword;

create or replace procedure sayhelloworld

as

--说明部分

begin

dbms_output.put_line("helloword"); 

end;

/

/*调 用存储过程有两种方法

方法一:

execute(可缩写exec) sayhelloworld;

方法二:

begin 

sayhelloworld();

end;

*/


带参数的存储过程

举例:为指定的员工,涨100块钱的工资,并打印涨钱和涨后的工资。

/*in表示指明输入参数 eno员工号,number数字类型*/

create or replace procedure raisesalary(eno in number)

as

--定义一个变量psal作为涨钱的工资,引用员工表中薪水做为这一变量的类型;

  psal emp.sal%type;

begin

--得到员工涨钱的薪水,并将其转入变量psal中

select sal into psal from emp where empno=eno;

--给该员工张100块钱的工资

update emp set sal=sal+100 where empno=enp;

--需不需要cpmmit?

--注意一般不在存储过程和存储函数中,commit或者rollback;

dbms_output.put_line('涨前 '||psal||'涨后 '||(psal+100));


end;


/*

begin

给工号为7788的员工涨工资

raisesalary(7788);

给工号为1234的员工涨工资

raisesalary(1234);

在这里再提交才能保证以上两个操作在同一个事物中。

commit;

end;

*/


如何调试存储过程

调 试存储过程需要 DEBUG CONNECT SESSION 和DEBUG ANY PROCEDURE权限。




0 0