我正在使用 Firebird 2.5 并遇到了一个我自己无法解决的问题。
使用UPDATE OR INSERT INTO
的声明。我想让它使用一个特定的执行计划。但是 - 无论我在哪里放置PLAN
- 我都会收到以下错误消息(行号因PLAN
的位置而异):
令牌无效。
动态SQL错误。
SQL错误代码= -104 令牌未知 - 第2行,第5列 计划。
我在corresponding documentation中找不到PLAN
与UPDATE OR INSERT INTO
的使用情况。
我的问题方面:甚至可以一起使用它们吗?这是否有效或是否计划在 Firebird 的更高版本中使用?有没有明显的原因它不起作用,我没有看到?有哪些替代方法可以绕过这个?
答案 0 :(得分:1)
在Firebird 2.5中不可能这样做(在3.0中也不可能)。查看parser definition,PLAN
子句仅支持:
对于merge
语句,应该可以为源指定计划(如果是选择查询),但不能为合并本身指定计划。没有为update or insert
定义计划子句(例如,也不是insert
)。
据我所知,没有计划将此添加到Firebird 4.您应该考虑在跟踪器中添加改进票据,但我不知道这是否甚至可能。