How to do a select on a table based on a index-by table?
This can be broken out into different steps if you want (i.e. variable for the count from the characteristics table).  But something with this logic should work.  Assuming unique constraint on (ID_SALA, NOME_CARATERISTICA) in getSalas, and unique data/constraint on (CARATERISTICA) in tabc_valor or whatever source data you have to compare to.  If those aren't necessarily unique, then you will only have one extra step to group by those columns first and sum the counts.

In one query:

with matches as (
    select gs.ID_SALA, count(1) ct
    from getSalas gs
    join tabc_valor tv on tv.CARATERISTICA = gs.NOME_CARATERISTICA
        and tv.VALOR &lt;= gs.VALOR_CARATERISTICA
    group by gs.ID_SALA
), targetCount as (
    select count(1) ct
    from tabc_valor
)
select m.ID_SALA
from matches m
join targetCount tc on tc.ct = m.ct;