LO Base连接本地HSQL数据库如何避免表名字段名需加双引号
针对LibreOffice Base连接本地HSQLDB无需手动加双引号的解决方案
方案1:修改HSQLDB数据库配置(最彻底,无需修改查询)
- 找到HSQLDB对应的
.script文件:如果你是用LO Base内置的HSQLDB,直接把.odb文件用解压软件解压,就能看到目录下的.script文件;如果是独立的本地HSQLDB,直接找数据库同级目录下的.script文件 - 用文本编辑器打开
.script文件,在文件开头的配置区域新增两行:SET DATABASE SQL NAMES FALSE SET DATABASE SQL IGNORECASE TRUE - 保存修改后,重新用LO Base加载数据库即可,后续不带双引号的查询可以直接正常运行。
方案2:修改LO Base连接配置(无需修改数据库文件)
- 打开LO Base,依次点击顶部菜单栏「工具」->「选项」->「LibreOffice Base」->「连接」
- 找到对应的本地HSQLDB连接,进入「高级设置」页面,勾选「忽略表名与字段名的大小写」选项
- 重启LO Base后生效,绝大多数场景下可以直接兼容不带双引号的查询语句。
方案3:批量转换现有查询(备用方案,配置修改不生效时使用)
如果因为权限或者特殊场景无法修改数据库/连接配置,可以用正则批量替换完成格式转换,不需要手动逐行修改:
- 将所有查询语句复制到支持正则替换的编辑器(如VS Code、Notepad++)
- 查找规则(正则模式):
([a-zA-Z0-9_]+)\.([a-zA-Z0-9_]+) - 替换规则:
"$1"."$2" - 执行一次全局替换即可完成所有
表名.字段名格式的双引号添加,千行级查询几秒钟就能处理完成。
差异原因说明
HSQLDB默认严格遵循SQL标准,不带双引号的标识符会自动转为全大写匹配,而LO Base创建本地HSQLDB表时,默认会给所有标识符加双引号保留原始输入的大小写,因此不带双引号的查询转大写后匹配不到表/字段就会报错。MySQL默认配置下标识符大小写不敏感,因此不会出现该问题。
内容的提问来源于stack exchange,提问作者tornadof3
相关产品推荐
相关产品推荐

