ORACLE中“:”是什么意思,有什么用处呀

时间:2022-11-08 02:43:24
如:
 SELECT MM_DISTRIBUTION.BATCH_ID,
               MM_DISTRIBUTION.REQUIREMENT_ITEM_ID,
               MM_DISTRIBUTION.WAREHOUSE_ID,
               MM_DISTRIBUTION.WAREHOUSE_FULL_NAME
          FROM MM_DISTRIBUTION
         WHERE DATA_AREA like     :9
           AND USABLE_QTY > 0
           AND MM_DISTRIBUTION.MATERIAL_ID = :10
           AND (MM_DISTRIBUTION.USAGE = :11 OR MM_DISTRIBUTION.USAGE = :12 OR
               MM_DISTRIBUTION.USAGE = :13 OR MM_DISTRIBUTION.USAGE = :14 OR MM
                _DISTRIBUTION.USAGE = :15 OR MM_DISTRIBUTION.USAGE = :16))
以上都有“:”符号,都代表什么意思呀?

5 个解决方案

#1


这里是一个具体的值,专用词“绑定变量” ,你百度一下;

#2


问度娘了,没找到答案,晕

#3


引用 2 楼 yangcced 的回复:
问度娘了,没找到答案,晕

百度搜索: oracle绑定变量    
咋可能没答案

#4


可以理解为占位符吗?我也不知道怎么表达。 反正 是有值 要赋在那个位置的

#5


绑定变量的形式.
绑定变量是为了减少解析的,比如你有个语句这样
select aaa,bbb from ccc where ddd=eee;
如果经常通过改变eee这个谓词赋值来查询,像如下
select aaa,bbb from ccc where ddd=fff;
select aaa,bbb from ccc where ddd=ggg;
select aaa,bbb from ccc where ddd=hhh;
每条语句都要被数据库解析一次,这样比较浪费资源,如果把eee换成“:1”这样的绑定变量形式,无论ddd后面是什么值,都不需要重复解析
如果你用数据仓库,一条大查询一跑几个小时,根本没必要做绑定变量,因为解析的消耗微乎其微,而且绑定变量对优化器判断执行路径也有负面影响。

#1


这里是一个具体的值,专用词“绑定变量” ,你百度一下;

#2


问度娘了,没找到答案,晕

#3


引用 2 楼 yangcced 的回复:
问度娘了,没找到答案,晕

百度搜索: oracle绑定变量    
咋可能没答案

#4


可以理解为占位符吗?我也不知道怎么表达。 反正 是有值 要赋在那个位置的

#5


绑定变量的形式.
绑定变量是为了减少解析的,比如你有个语句这样
select aaa,bbb from ccc where ddd=eee;
如果经常通过改变eee这个谓词赋值来查询,像如下
select aaa,bbb from ccc where ddd=fff;
select aaa,bbb from ccc where ddd=ggg;
select aaa,bbb from ccc where ddd=hhh;
每条语句都要被数据库解析一次,这样比较浪费资源,如果把eee换成“:1”这样的绑定变量形式,无论ddd后面是什么值,都不需要重复解析
如果你用数据仓库,一条大查询一跑几个小时,根本没必要做绑定变量,因为解析的消耗微乎其微,而且绑定变量对优化器判断执行路径也有负面影响。