在LibreOffice中运行嵌入式firebird sql查询时出现问题



我正试图在LibreOffice中运行以下Firebird SQL查询,该查询已嵌入Firebird:

SELECT RDB$GET_CONTEXT('SYSTEM', 'ENGINE_VERSION')  AS "VERSION" 
FROM "RDB$DATABASE";

我收到消息Syntax error in SQL statement。有人能告诉我我做错了什么吗?这在FlameRobin中有效,但在LibreOffice中无效。

错误"SQL语句中的语法错误">是HSQLDB错误。因此,首先,确保您的LibreOfficeBase项目实际上是作为FirebirdEmbedded项目创建的。

我能够用Firebird Embedded项目重现LibreOffice Base 6.4.4.2中的错误。看起来LibreOffice首先尝试使用HSQLDB解析查询(可能能够将HSQLDB语法转换为Firebird语法(,然后才将其转发给Firebird。

错误的原因是RDB$GET_CONTEXT中的$不是HSQLDB SQL语法中未引用对象名称中的有效字符,而在Firebird SQL语法中是有效字符。通常,对特定对象名称进行双引号引用可以解决此问题,但RDB$GET_CONTEXT实际上不是一个函数,而是一个语法构造,因此它不能在Firebird中引用。

为了能够执行此查询,您需要在SQL视图中的"编辑>"下启用"直接运行SQL命令"选项"直接运行SQL命令",或使用工具栏中的"直接运行SQL命令"按钮(带有>_的数据库图标(。

最新更新