在我的 PL/SQL 中有这个使用绑定变量的大动态 SQL。我使用 DBMS_SQL 包来绑定和执行生成的查询。
根据某些条件,将 where 子句添加到动态 SQL 中。当我只使用“in”或“=”来匹配我的绑定变量时,一切正常,并且返回结果非常快。
例子:
(servedparty = :bv_ or servedpartyimsi = :bv_)
但是,当我执行以下操作时:
(servedpartyimei like :bv_)
并提供像 12345679890% 这样的值,查询需要非常非常长的时间。
我也试过这样的东西
(servedpartyimei like :bv_||'%')
然后提供不带“%”的值,但结果相同
当我在没有绑定变量的情况下执行查询但只输入硬编码值时,结果也会立即返回。
我在这里做错了吗?不要像 LIKE 运算符那样绑定变量?有任何想法吗?
谢谢你。