LibreOffice 中的问题 运行 嵌入式 firebird sql 查询

Problem running embedded firebird sql query in LibreOffice

我正尝试在 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 错误。因此,首先,请确保您的 LibreOffice Base 项目实际上是作为 Firebird Embedded 项目创建的。

我能够使用 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 视图中启用 'Run SQL command directly' 选项,可以在编辑 > 'Run SQL command directly' 下,或使用 'Run SQL command directly' 按钮(带 >_ 的数据库图标)。