Mat*_*att 3 oracle plsql if-statement
我正在尝试做这样的事情,但我很难将它放入oracle编码.
BEGIN
IF ((SELECT complete_date FROM task_table WHERE task_id = 1) IS NULL)
THEN
UPDATE task_table SET complete_date = //somedate WHERE task_id = 1;
ELSE
UPDATE task_table SET complete_date = NULL;
END IF;
END;
Run Code Online (Sandbox Code Playgroud)
但这不起作用.我也试过了
IF EXISTS(SELECT complete_date FROM task_table WHERE task_id = 1)
Run Code Online (Sandbox Code Playgroud)
没有运气.
如果您的实际逻辑与上面的逻辑类似,我认为您不需要程序块.
假设这是你的任务:
"如果id为1的complete_date的值为NULL,则用XXX更新它.否则将其设置为null".
你可以跑......
Update task_table
set complete_date = nvl2(complete_date,NULL, <**your date**>)
where task_id = 1;
Run Code Online (Sandbox Code Playgroud)
这将仅更新complete_date为新日期的那些记录.