LibreOffice Writer无法加载含LIST()的Base查询字段数据求助
LibreOffice Base(Firebird) LIST()查询在Writer中无数据的解决办法
排查方向及修复方案
解决数据类型不兼容问题
Firebird的LIST()函数默认返回BLOB SUB_TYPE TEXT类型,而Writer的数据库字段功能对这种大文本类型支持不佳。你可以在查询里把结果转成普通字符串:CAST(LIST(你的目标字段) AS VARCHAR(4000)) AS 合并内容注意根据实际内容长度调整
VARCHAR的数值,别超过Firebird的限制(最大32767)。给字段加明确别名
避免用函数名作为字段标识,给LIST()结果指定简单别名,比如上面的合并内容,防止Writer识别字段时出错。检查Writer的数据库连接
打开Writer的「视图」→「数据来源」,找到对应的查询右键选「属性」,确认用的是兼容的Firebird驱动(JDBC/ODBC)。另外可以删除文档里现有的数据库字段,重新从数据面板拖拽修改后的查询字段进去,重置关联。字符集匹配检查
如果合并的内容有非英文字符,确认数据库字符集是UTF8,必要时在查询里显式转换:LIST(CAST(你的目标字段 AS VARCHAR(255) CHARACTER SET UTF8)) AS 合并内容升级LibreOffice版本
部分旧版本存在Firebird函数返回值处理的BUG,升级到最新稳定版大概率能解决这类兼容性问题。
内容的提问来源于stack exchange,提问作者eworm
相关产品推荐
相关产品推荐

