Oracle PLSQL - 基于非空的更新

Oracle PLSQL - Update based on non-null

我有一个 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)

名字、姓氏、地址、手机、订单号

四个参数:名字、姓氏、地址、手机 可以为 NULL 或不能为 NULL

如果它们不是 NULL,我需要用参数

中不为空的任何内容更新 table

我该怎么做?

例如:

First Name: Robert
Last Name: NULL
Mobile: NULL
Add1 : First Street, 20A

基于此,我只需要更新 table Ord_Address

中的 First Name 和 Add1

嗯...不,你没有功能。那应该是一个 过程,因为函数不能进行 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;