DECLARE v1 number; v2 number; v_operator varchar2(2char); FUNCTION evaluate_expression(p_expression VARCHAR2) RETURN BOOLEAN IS v_result BOOLEAN; BEGIN EXECUTE IMMEDIATE 'BEGIN :result := ' || p_expression || '; END;' USING OUT v_result; RETURN v_result; EXCEPTION WHEN OTHERS THEN RETURN FALSE; -- Falls ein Fehler auftritt, wird der Ausdruck als falsch betrachtet END; begin v1 := 2; v2 := 1; v_operator := '<'; if evaluate_expression(v1||v_operator||v2) then dbms_output.put_line('Das ist richtig'); else dbms_output.put_line('Das ist falsch'); end if; end;