Pular para o conteúdo

Fóruns SQL e PL/SQL Dúvida SQL simples Dúvida SQL simples

#93551
fsitja
Participante

    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.