oralce 经典习题系列

数据库存储过程

The problem

1 写一个名称为WORD的存储过程,可以自定义功能。 2 调用存储过程WORD。 3 修改WORD。


The answer

以pet表为例

name owner Species sex birth death
fluffy Horold cat f 2003-10-12 2010-08-12
Claws Gwen cat m 2004-08-10 null
Buffy null dog f 2009-08-11 null
Fang Benny dog m 2000-05-15 null
Bowser Diane dog m 2003-04-16 2009-11-12
Chirpy null bird f 2008-05-19 null
--1 写一个名称为WORD的存储过程,可以自定义功能。
--2 调用存储过程WORD。
--3 修改WORD。
select * from pet;
--1.1做个根据name返回记录,create or replace 修改后直接执行原来的存储过程会被覆盖修改
create or replace procedure word (v_name in varchar)
  as r_pet pet%Rowtype;
begin 
  select * into r_pet from pet where name =v_name;
  dbms_output.put_line(r_pet.name ||'  ' ||r_pet.owner|| '   '||r_pet.species ||'  '||r_pet.sex);
end;
--调用存储过程
set SERVEROUTPUT ON;
exec word('Fluffy');