(学习中遇到的相关问题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;
*/
如何调试存储过程