可以在生成时静态地指定与 EGL 语句相关联的 SQL 语句并适当地指定所有详细信息。然而,当动态 SQL 生效时,在运行时每次调用 EGL 语句时都会构建 SQL 语句。
使用动态 SQL 会降低运行时的处理速度,但是允许您改变数据库操作以响应运行时值:
- 对于数据库查询,您可能想要改变选择标准、数据聚集方式或返回行的顺序;那些详细信息是由 WHERE、HAVING、GROUP BY 和 ORDER BY 子句控制的。在这种情况下,可以使用 prepare 语句。
- 对于许多类型的操作,您可能想要一个运行时值来确定要访问的表。可以通过两种方法来实现表的动态指定:
- 使用 prepare 语句;或者
- 使用 SQL 记录并对 tableNameVariables 属性指定值,如 EGL 源格式的 SQL 记录部件中所述。