小编Tij*_*ijs的帖子

使用带有 LIKE % 运算符的绑定变量

在我的 PL/SQL 中有这个使用绑定变量的大动态 SQL。我使用 DBMS_SQL 包来绑定和执行生成的查询。

根据某些标准,将 where 子句添加到动态 SQL 中。当我只使用“in”或“=”来匹配我的绑定变量时,一切正常,结果返回速度非常快。

例子:

(servedparty = :bv_ or servedpartyimsi = :bv_)

但是,当我执行以下操作时:

(servedpartyimei like :bv_)
Run Code Online (Sandbox Code Playgroud)

并提供一个像 12345679890% 这样的值,查询需要非常非常长的时间。

我也试过这样的事情

(servedpartyimei like :bv_||'%')

然后提供没有 '%' 的值,但它给出了相同的结果

当我在没有绑定变量的情况下执行查询但只放置硬编码值时,结果也会立即返回。

我在这里做错了吗?不要像 LIKE 运算符那样绑定变量?有任何想法吗?

谢谢你。

oracle plsql bind-variables sql-like

4
推荐指数
1
解决办法
2881
查看次数

标签 统计

bind-variables ×1

oracle ×1

plsql ×1

sql-like ×1