我已經編寫了一個更新表的存儲過程。 但我想考慮一個或多個參數是NULL的地方。 在這種情況下,我不想更新列,我想保留原有值。PL SQL - 如果參數不爲NULL,則存儲過程更新列
我試着使用:
UPDATE
VS_USER_T
SET
USR_FIRST_NAME = ISNULL(p_NewUsrFName, @p_NewUsrFName)
WHERE
USR_ID = lv_Num_UsrId;
,但我得到的 '@',我使用的Oracle 12c中的錯誤。
這是過程調用
PROCEDURE UpdateUser
(p_UserId IN VS_USER_T.USR_ID%TYPE,
p_NewUsrFName IN VS_USER_T.USR_FIRST_NAME%TYPE,
p_NewUsrLName IN VS_USER_T.USR_LAST_NAME%TYPE,
p_NewUsrname IN VS_USER_T.USR_LOGIN%TYPE)
請告知我的UPDATE語句應該怎麼樣子,當「p_NewUsrname」可以爲空,在這種情況下,我想離開現有的值是。
在此先感謝。
請更新您的代碼,以便我們更好地瞭解您的SP是什麼樣的。 –
您是否將參數設置爲可選項? –
在Oracle手冊中,您是否找到了用'@'前綴變量的語法? –