oracle - 我可以编译下面的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;
解决方案
是的,您可以提供在您的架构中调用的当前架构中有一个表,其person
列
person_id
类型number
为 , 和First_Name
,列。Last_Name
Login_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;
推荐阅读
- python - ImportError:无法从“tensorflow.python.keras.saving.saved_model”导入名称“export_saved_model”
- c - 为什么我的代码在删除具有两个子节点的节点后无法显示 pre_order?
- ios - Alamofire.uploadmultipartFormData 与 JSONEncoding.default (Swift)
- javascript - 将相邻列中的标题元素最小高度设置为与最高标题一样高
- java - 如何在不使用内置函数的情况下获取 LinkedList 类的下一个指针?
- python - 如何获得与 django rest 框架中的帖子相对应的评论?
- python-3.x - 在python中创建一个大字母'A'
- r - 有什么方法可以在 Rmarkdown 中强制输出文件名?
- qt - 如何将鼠标滚轮滚动添加到垂直滚动条或滚动区域?
- html - 机器人框架:如何定位输入文本字段以及如何在其中输入值