【发布时间】:2021-09-13 17:38:26
【问题描述】:
我有一个光标,我需要循环并检查几个条件。如果该人的类别大于 24,我需要它来查看该人是否在表中也有以前的记录,如果满足条件,则更改 v_check 变量的值。问题是它说我不能在这里使用查询。我怎么能做到这一点?
[Error] Compilation (248: 39): PLS-00405: subquery not allowed in this context
IF v_category > 24 THEN
IF v_person_id = (
SELECT person_id
FROM mytable
WHERE category = 24
AND outcome IS NULL
AND person_id = v_person_id
) THEN v_check := 'NO PREV OUTCOME';
ELSIF v_person_id = (
SELECT person_id
FROM mytable
WHERE category = 24
AND outcome_date IS NULL
AND person_id = v_person_id
) THEN v_check := 'NO OUTCOME DATE';
ELSIF category = 24 THEN v_check := 'N/A';
END IF;
ELSE v_check := 'OK';
END IF;
【问题讨论】:
标签: oracle if-statement plsql plsql-package