6

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

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。
请指教。

问候,
马扬克

4

1 回答 1

7

除非您指定二进制游标,否则 PQgetvalue() 返回字段值的字符串表示形式。无论哪种情况(字符串或二进制光标),您都需要提供代码以将结果操作为您想要的形式。

您可能会在PostgreSQL 源代码中找到一些想法。

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

contrib/intarray 中有一些代码。

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

在字符串级别,这是 PQgetvalue() 返回的内容,很容易在谷歌上搜索一些从逗号分隔的字符串中提取整数的代码。

于 2011-05-15T09:08:38.957 回答