![]() |
1
1
这里的隐式规则(由软件的实现方式给出)是计算视图的参数值的反斜杠
对于所有出现的标准SQL字符串,使用单引号两次
至于为什么:
但是参数不仅由SQL解析器解析一次,而且由根据计算视图实例化计算场景的组件再次解析。稍微斜视一下,就不难看出参数接口是一个通用的键值接口,它允许将各种信息移交给计算引擎。 有人可能会说,通过键值对提供参数的整个方法与一般的SQL语法方法不一致,并且是正确的。另一方面,这种方法允许在不改变语法(以及语法分析器)的情况下,向HANA特定的部分添加新的命令元素的一般灵活性。 这明显的缺点是两个键名以及值都是字符串类型的。为了避免丢失“内部字符串”所需的转义,需要使用与主SQL转义字符串不同的转义字符串。 这里我们有两种不同的方法来传递一个字符串值,作为一个过滤条件。 有趣的是,这两种方法可能仍然会导致相同的查询执行计划。 事实上,在许多使用输入参数的场景中,字符串值将在内部转换为符合SQL的形式。当输入参数用于筛选或在可转换为SQL表达式的Calc.视图中的表达式时,就是这种情况。 例如
在我的系统上显示以下执行计划
注意如何逃脱-
总而言之:使用时
|
|
Anup Kulkarni · HANA“创建任意”对象权限 7 年前 |