我创建了一个表,如下所示:

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中找到一些想法。

  • src/backend/utils/adt/arrayfuncs.c
  • src/include/utils/array.h。

  • 在contrib/intarray中有一些代码。

    http://doxygen.postgresql.org/上,单击"file",然后搜索“数组”。

    在字符串级别(这是PQgetvalue()返回的),Google编写一些代码可以很容易地从逗号分隔的字符串中提取整数。

    关于c - PostgreSQL PQgetvalue : array return,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5861906/

    10-11 22:07