› Fóruns › SQL e PL/SQL › Dúvida SQL simples › Dúvida SQL simples
Não pode usar query no IN dentro de PL/SQL.
DECLARE
v_achou_cod VARCHAR2(10);
BEGIN
BEGIN
SELECT 'ACHEI'
INTO v_achou_cod
FROM dual
WHERE EXISTS (SELECT 1
FROM (SELECT cod_gabinete
FROM ministro
UNION
SELECT cod_gabinete FROM membro_ministerio_publico)
WHERE cod_gabinete = :new.cod_unidade_tcu);
EXCEPTION
WHEN no_data_found THEN
v_achou_cod := 'NÃO ACHEI';
END;
dbms_output.put_line(v_achou_cod);
IF v_achou_cod = 'ACHEI' THEN
RAISE erro;
END IF;
END;
Obs: não consegui postar pois dá erro no forum. Nesse caso não vale a pena usar “union” pois ele demanda recursos do banco de dados para fazer um sort e “distinct” implícitos nos dados.
Troque ele para um UNI0N ALL.