by idoris [2020.05.14 19:23:29]
바보 같은 질문일수도 있는데..
아래 구문이 왜 에러나는지 싶네요..
IF문 안에서는 SELECT 절 안됐었나요?
DECLARE
BEGIN
IF (SELECT 1 FROM DUAL) = 1 THEN DBMS_OUTPUT.PUT_LINE('1'); END IF; END;
into 로 조회온 변수를 지정하세요.
논리적으로 보면 충분히 가능할 수 있는 구문이네요. 그런데 에러가 나니 어쩔 수 없이 다른 방안을 찾아야죠. 그냥 IF 문에서는 SELECT 못쓴다는 제약을 걸어 놓은 듯.
declare v_count number; begin select count(*) into v_count from dual;
if v_count >= 1 then dbms_output.put_line('Pass'); end if; end;