oracle - Oracle PLSQL - 基于非空的更新
问题描述
我有一个接收
FUNCTION VALIDATE_UPDATE_REQUEST (P_Orderno In Ord_Head.Order_No%Type,
P_First_Name In Ord_Address.First_Name%Type,
P_Last_Name In Ord_Address.Last_Name%Type,
P_Address In Ord_Address.Add_1%Type,
P_Mobile In Ord_Address.Phone_No%Type)
名字、姓氏、地址、手机、订单号
四个参数:First Name、Last Name、Address、Mobile 可以为 NULL 也不能为 NULL
如果它们不为空,我需要使用参数中不为空的任何内容来更新表
我怎么做?
例如:
First Name: Robert
Last Name: NULL
Mobile: NULL
Add1 : First Street, 20A
基于此,我只需要更新表 Ord_Address 中的 First Name 和 Add1
解决方案
Ummmm ...不,您没有功能。那应该是一个过程,因为函数不能执行 DML 操作。
除此之外,程序将具有以下内容:
update your_table set
first_name = nvl(p_first_name, first_name),
last_name = nvl(p_last_name, last_name),
address = nvl(p_address, address),
mobile = nvl(p_mobile, mobile)
where orderno = p_orderno;
推荐阅读
- amazon-web-services - 使用 CloudFormation 时,AWS Lambda 函数缺少 websocket 网关的触发器
- python - 认证不适用于 pycharm。苹果系统
- javascript - 区分 JavaScript Try/Catch 中的 API (Apex) 异常类型
- powershell - 如何在 VSCode 中设置自定义 powershell 安装目录
- python - 无法加载使用 Igor pro 保存的 Python hdf 文件
- sql - 处理模型表中 expires_in 数据的最佳方法是什么
- javascript - 在 Discord.js V13 中发送贴纸
- javascript - React 表单返回未定义的值
- arrays - C for 循环中未声明的标识符错误?
- javascript - 从 Mongoose 获取项目列表并返回结果