在WHERE子句下SQL中“冒号”的含义是什么?

时间:2012-09-17 16:31:11

标签: sql oracle oracle10g

我有SQL函数,它不是我写的。

我很难理解,以下条件意味着什么? 具体为:key||cLF||'

WHERE  ' WHERE 1=1 '
       ||cLF||' AND   f.key = :key '
       ||cLF||' AND   i.flag = 0'
       ||cLF||' AND   r.flag = 0'

2 个答案:

答案 0 :(得分:3)

首先,||运算符是string concatenation operator。所以看起来代码正在使用WHERE指定的条件构建cLF子句。虽然我不完全确定他们为什么要在那里cLF三次。

:key语法是指参数化查询中的参数。当您正在构建的SQL语句实际运行时,它的值将被传递。

答案 1 :(得分:1)

您粘贴的查询是动态构造的SQL语句的一部分。 分号在这里指向绑定位置持有者,这意味着“:key”的实际值通过参数传递而不是硬编码。

阅读EXECUTE IMMEDIATE上的示例。