寻找 OpenOffice 基础 SQL 参考

问题描述

(我在别处发布了这个,但这可能是一个更好的论坛。)

我最近买了一台新的笔记本电脑,并试图避免使用 MS Office。我已经加载了 OpenOffice 4.1.8,但是在以面向对象为基础编写查询语句时遇到了问题。据说,OO base 使用 Hypersql 数据库引擎(不知道是什么版本,也许是 2.5.1?),但是在编写一些简单的 SELECT 语句时遇到了困难。 (我在 MS Access、Ingres 和一点点 Postgresql 方面都有丰富的经验。

我花了很长时间才确定

SELECT lastname + ',' + firstname from Accounts

“不够好”。我必须指定:

SELECT lastname + (',') + firstname from Accounts

只是因为我最终在 http://www.hsqldb.org/doc/2.0/guide (2.5.1) 站点上混淆了巴科斯-诺尔形式以发现它。

那个网站也让我误入歧途,(在 BNF 中)说 ||是字符串连接运算符,但 OO 基础表示“垂直条的使用无效”,这意味着 hsqldb 2.5.1 引用并不是我正在寻找的引用。 (也许我需要一个旧版本的参考?)

另外,一些函数似乎不可用,CONCAT 和 IFNULL/ISNULL 就在其中。这似乎意味着缺少一两个库。

所以,真的,我有两个问题:谁能给我指出适用于面向对象基础 (4.1.8) 查询语言的 BNF?而且,也许可以告诉我是否有某种方法可以确定我是否缺少它使用的一个或两个函数库?

解决方法

Apache OpenOffice 一直嵌入 HSQLDB 1.8,在 AOO 4.1.8 中可能仍然如此。要验证您的版本,请查看 https://wiki.openoffice.org/wiki/HSQLDB:Tips_and_Tricks#How_to_know_the_version_of_the_embedded_HSQLDB.3F。文档位于 http://www.hsqldb.org/doc/1.8/guide/guide.html。引擎和 SQL 语法比 HSQLDB 2 及更高版本受到更多限制。

对于更新的内容,请考虑嵌入 Firebird 的 LibreOffice Base。或者更好的是,在拆分数据库设置中使用 Base 和 PostgreSQL(适用于 LO 和 AOO)。拆分数据库设置功能强大,尽管它们不再包含在单个文件中,这可能不太方便。