--第一个存储过程:打印helloWord
/**1.exec sayhelloworld();
2.begin
sayhelloworld();
sayhelloworld();
end;
*/
create or replace procedure sayhelloworld
as
--说名部分
begin
dbms_output.put_line('HelloWord');
end;
/
执行存储过程
SQL> set serveroutput on
SQL> exec sayhelloworld();
HelloWord
PL/SQL procedure successfully completed
------------------------------------------------------------------------------------------------------------------------
--创建一个带参数的存储过程
--给指定的员工涨100元钱的工资,并且打印涨前和涨后的薪水
create or replace procedure raisesalary(eno in number)
as
--定义一个变量保存涨前的薪水
psal emp.sal%type;
begin
--得到员工涨前的薪水
select sal into psal form emp where empno=eno;
--给该员工涨100
update emp set sal=sal+100 where empno=eno;
--打印
dbms_output.put_line('涨前:'||psal||'涨后:'||(100+psal));
end;
/
SQL> begin
2 raisesalary(7839);
3 commit;
4 end;
5 /
涨前:5000涨后:5100
PL/SQL procedure successfully completed
---------------------------------------------------------------------------------------------------------------
--out参数:查询某个员工姓名月薪和职位
create or replace procedure queryempinfoform(emo in number,
pename out varchar2,
psal out number,
pjob out varchar2)
as
begin
--得到该员工的姓名 月薪 和职位
select ename,sal,empjob,into pename,psal,pjob from emp where empno=eno;
end;
/
---------------------------------------------------------------------------------------------------------------
create or replace package mypackage as
type empcursor is ref cursor;
procedure queryEmpList(dno in number,empList out empcursor);
end mypackage;
---------------------------------------------------------------------------------------------------------------