C'è una chiara differenza quando usi le variabili di binding, che dovresti usare in Oracle per qualcosa di diverso dal data warehousing o altre operazioni di dati di massa.
Prendi il caso di:
SELECT * FROM SOME_TABLE WHERE SOME_FIELD LIKE :b1
Oracle non può sapere che il valore di :b1 è '%some_value%' o 'some_value' ecc. fino al momento dell'esecuzione, quindi eseguirà una stima della cardinalità del risultato in base all'euristica e inventerà un piano appropriato che sia può essere adatto o meno per vari valori di :b, come '%A','%', 'A' ecc.
Problemi simili possono essere applicati con un predicato di uguaglianza, ma l'intervallo di cardinalità che potrebbe risultare è molto più facilmente stimabile in base alle statistiche delle colonne o alla presenza di un vincolo univoco, ad esempio.
Quindi, personalmente non inizierei a usare LIKE come sostituto di =. L'ottimizzatore a volte è abbastanza facile da ingannare.