C'est tout à fait possible et facile à faire.
Utilisez simplement dbms_lob.instr en conjonction avec utl_raw.cast_to_raw
Donc, dans votre cas, si t1 est un BLOB, la sélection ressemblerait à :
select *
from table1
where dbms_lob.instr (t1, -- the blob
utl_raw.cast_to_raw ('foo'), -- the search string cast to raw
1, -- where to start. i.e. offset
1 -- Which occurrance i.e. 1=first
) > 0 -- location of occurrence. Here I don't care. Just find any
;