【问题标题】:What does 'colon' mean in SQL under WHERE clause?在 WHERE 子句下的 SQL 中,“冒号”是什么意思?
【发布时间】:2012-09-09 22:03:27
【问题描述】:

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

我很难理解,以下条件是什么意思?
特别是:key||cLF||'

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

【问题讨论】:

标签: sql oracle oracle10g


【解决方案1】:

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

:key 语法引用参数化查询中的参数。它的值将在您正在构建的 SQL 语句实际运行时传入。

【讨论】:

  • CLF 设置为常量CONSTANT varchar2(1) := chr(10);
  • @Mogli - 啊,那是有道理的!
  • mike 谢谢你的解释和有用的链接,所以在那个链接中,你能解释一下'Mr ' 选择了什么吗?
  • 在我的情况下CLF 是在改变类型吗?
  • 不确定您对“先生”选择什么的意思。你能详细说明吗? cLF 只是在您的语句中添加换行符,除了可读性之外,它们实际上没有任何目的。也许该语句正在某处记录。
【解决方案2】:

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

阅读有关立即执行的示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 2022-01-28
    • 2019-09-14
    • 2011-10-20
    相关资源
    最近更新 更多