我创建了一个表,如下所示:
CREATE TABLE tbl_test
(
id bigserial PRIMARY KEY,
interest int ARRAY[2]
);
我使用
PGresult* res
获得了PQexec(conn, "SELECT * FROM tbl_test");
现在,我如何从
int[]
获取PQgetvalue(res, 0, 1)
。我不想依赖
array.h
中定义的结构,因为它们可能会更改。我在Postgresql文档中找不到可以执行任何操作的API。
请指教。
问候,
玛雅克
最佳答案
除非您指定二进制游标,否则PQgetvalue()返回字段值的字符串表示形式。无论是哪种情况(字符串或二进制游标),您都需要提供代码以将结果操纵为所需的形式。
您可能会在PostgreSQL source code中找到一些想法。
在contrib/intarray中有一些代码。
在http://doxygen.postgresql.org/上,单击"file",然后搜索“数组”。
在字符串级别(这是PQgetvalue()返回的),Google编写一些代码可以很容易地从逗号分隔的字符串中提取整数。
关于c - PostgreSQL PQgetvalue : array return,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5861906/