我有一个包含程序数据的postgresql数据库。在Libreoffice Calc中,我有基本的宏与postgresql数据库进行交互,并使用Calc作为用户客户端。其中一个postgresql表有一个数组,我不能直接从Basic索引到该数组。从Libreoffice Basic访问SQL数组元素
下面是表设置,如图pgAdmin的:
sq_num integer,
year_start integer,
id serial NOT NULL,
"roleArray" text[]
说我想选择roleArray [50]。我所有的尝试都是通过传递整个数组的基本结果。我当然可以自己拆分数组并获取我之后的元素,但是我使用SQL数组来帮助自动化这些东西。
我的基本代码使用Libreoffice Base文件连接到postgresql数据库。将基础文件,我不能创建一个查询,将选择一个单独的元素,而不是返回整个数组,除非我选择按钮“运行SQL命令直接”,并运行此查询:
SELECT "roleArray"['50'] FROM myTableThatHasArrays
然后我得到的元素按照预期从每个记录中获得50个
我相信有一个错误报告描述了这一点,其中基本命令解析器无法处理索引数组。我的问题是克服这个问题的最好方法是什么?
最好的方案是能够直接从Basic中索引SQL数组中的元素。
如果没有答案,解决此问题的权宜办法是接受整个数组。它将作为csv字符串收到,并在最后带有大括号。解决方案是分开大括号,然后分割逗号,然后索引你想要的元素。然而,这是一个解决方法,而不是我希望使用的答案。 – Smith
欢迎来到StackOverflow!什么是您尝试的基本代码? –
另一件要提及的事情:不要让pgAdmin将您的表名放在引号中。如果你不用小写字母输入列名,它会显示它。 – Smith