鍍金池/ 問答/數(shù)據(jù)庫  網(wǎng)絡(luò)安全/ Oracle:IF...IN (SELECT ... FROM ...) 之子查

Oracle:IF...IN (SELECT ... FROM ...) 之子查詢不被允許

IF (ACC IN (SELECT ACC FROM ... WHERE ...)) THEN

...

END IF;

報(bào)錯(cuò):
PLS-00405:subquery not allowed in this context

想使用SELECT ACC FROM ... WHERE ...的返回值作為 IN 的參數(shù)是不被允許的嗎?

那是否可以將 SELECT 語句的查詢結(jié)果放入變量再作為 IN 的參數(shù)呢?

回答
編輯回答
孤客

我理解IN是sql語句的寫法,不能放到PL/SQL的程序代碼中
可以換另外一種寫法:

SELECT count(*) 
INTO v_count
FROM (
    SELECT acc FROM ... WHERE ...)
)
WHERE acc = v_acc;

IF v_count > 0 THEN
  ...
END IF;
2017年4月16日 00:58