首页 > 解决方案 > 我可以编译下面的SP吗

问题描述

我需要根据提供的变量读取一列,然后传递列信息来更新行。

create or replace PROCEDURE updatePersonUUID01(
       PFirstName IN PERSON.First_Name%TYPE,
       PLastName  IN PERSON.Last_Name%TYPE,
       PPersonID  out number)
IS
BEGIN
select person_id into ppersonid 
  from Person
  where 
       Person.First_Name = PFirstName 
  AND  Person.Last_Name  = PLastName;

  UPDATE person
  SET Login_uuid = NULL 
  WHERE 
      person_id = ppersonid; 

COMMIT;
END;

标签: oraclestored-proceduresplsql

解决方案


是的,您可以提供在您的架构中调用的当前架构中有一个表,其personperson_id类型number为 , 和First_Name,列。Last_NameLogin_uuid

但是,不要忘记为您的声明处理至少no_data_found(也可能更好too_many_rows)异常select

begin
   select person_id 
     into ppersonid 
     from Person p
    where p.First_Name = PFirstName 
      and p.Last_Name  = PLastName;
 exception when no_data_found then ppersonid :=null;
           when too_many_rows then ppersonid :=null;
end;

推荐阅读