Не думаю, что вам понадобится процедурный блок, если ваша фактическая логика похожа на приведенную выше.
Предполагается, что это ваша задача:
"если значениедля complete_date для идентификатора 1 установлено значение NULL, обновите его с помощью XXX. В противном случае установите для него значение null ".
Вы можете просто запустить ...
Update task_table
set complete_date = nvl2(complete_date,NULL, <**your date**>)
where task_id = 1;
Это обновит только тезаписывает, где полная_дата равна нулю с вашей новой датой.