Je jasný rozdíl, když používáte proměnné vazby, které byste měli používat v Oracle pro cokoli jiného než pro ukládání dat nebo jiné operace s hromadnými daty.
Vezměte si případ:
SELECT * FROM SOME_TABLE WHERE SOME_FIELD LIKE :b1
Oracle nemůže vědět, že hodnota :b1 je '%some_value%' nebo 'some_value' atd. až do doby provedení, takže provede odhad mohutnosti výsledku na základě heuristiky a přijde s vhodným plánem, který buď může nebo nemusí být vhodné pro různé hodnoty :b, jako je '%A', '%', 'A' atd.
Podobné problémy mohou platit s predikátem rovnosti, ale rozsah mohutností, které mohou vzniknout, lze mnohem snadněji odhadnout na základě statistiky sloupců nebo například přítomnosti jedinečného omezení.
Osobně bych tedy nezačal používat LIKE jako náhradu za =. Optimalizátor je někdy docela snadné oklamat.