PL / SQL - Warunki opcjonalne w klauzuli gdzie - bez dynamicznego sql?

Mam pytanie, gdzie nie wszystkie warunki są konieczne. Oto przykład, jak to wygląda, gdy używane są wszystkie warunki:

select num
from (select distinct q.num
       from cqqv q
       where q.bcode = '1234567' --this is variable
             and q.lb = 'AXCT' --this is variable
             and q.type = 'privt' --this is variable
             and q.edate > sysdate - 30 --this is variable
       order by dbms_random.value()) subq
where rownum <= 10; --this is variable

Części oznaczone jako--this is variable są części, które się różnią! Jeśli warunek NIE jest określony, nie ma wartości domyślnej. Na przykład, jeśli dane wejściowe określają „*” dla q.type (ale pozostawia wszystko to samo), to zapytanie powinno pasować do wszystkiego dla typu i wykonać jako:

select num
from (select distinct q.num
       from cqqv q
       where q.bcode = '1234567' --this is variable
             and q.lb = 'AXCT' --this is variable
             --and q.type = 'privt' --this condition ignored because of "type=*" in input
             and q.edate > sysdate - 30 --this is variable
       order by dbms_random.value()) subq
where rownum <= 10; --this is variable

Wiem, że możliwe jest użycie dynamicznego sql do zbudowania tego zapytania w locie, ale zastanawiam się, jakie problemy z wydajnością może to spowodować i czy jest lepszy sposób, aby to zrobić.

questionAnswers(5)

yourAnswerToTheQuestion