我有一个包含程序数据的 postgresql 数据库。在 Libreoffice Calc 中,我有与 postgresql 数据库交互并使用 Calc 作为用户客户端的基本宏。其中一个 postgresql 表有一个数组,我无法直接从 Basic 索引到该数组。
这是表设置,如 pgAdmin 中所示:
sq_num integer,
year_start integer,
id serial NOT NULL,
"roleArray" text[]
假设我想选择 roleArray[50]。我每次尝试从 Basic 中执行此操作都会导致整个数组被传递。我当然可以自己拆分数组并获得我想要的元素,但我使用 SQL 数组来帮助自动化这些东西。
我的 Basic 代码使用 Libreoffice Base 文件连接到 postgresql 数据库。转到基本文件,我无法创建将选择单个元素而不返回整个数组的查询,除非我选择“直接运行 SQL 命令”按钮并运行此查询:
SELECT "roleArray"['50'] FROM myTableThatHasArrays
然后我按预期从每条记录中获取元素 50。
我相信有一个错误报告描述了这一点,其中 Base 命令解析器无法处理索引数组。我的问题是克服这个问题的最佳方法是什么?
最好的方案是能够直接从 Basic 索引 SQL 数组中的元素。