gpt4 book ai didi

postgresql - 从 RECORD 中检索值

转载 作者:行者123 更新时间:2023-11-29 12:06:13 24 4
gpt4 key购买 nike

在 plpgsql 函数中,我有一个记录类型的变量:

my_rec RECORD;

此记录包含任意表中的一行,因此在执行之前我不知道列。但是,我确实有至少一个可用 varchar 形式的列的名称。

问题是:如何从 my_rec 中检索给定列的值?

最佳答案

使用 hstorePL/PgSQL 函数中的动态列一起使用 record:

CREATE EXTENSION hstore;

CREATE OR REPLACE FUNCTION test_fn(col_name text) RETURNS text AS $$
DECLARE
input_row record;
col_value text;
BEGIN
SELECT INTO input_row
*
FROM ( VALUES ('a','b','c',1) ) AS dummyrow(col1,col2,col3,intcol);

SELECT INTO col_value
hstore(input_row) -> col_name;

RETURN col_value;
END;
$$ LANGUAGE 'plpgsql';

hstore 是一个扩展,但它是从 8.3 开始与 PostgreSQL 捆绑在一起的扩展,并且从 9.1 开始可以使用 CREATE EXTENSION 安装。从 8.4 或 9.0 开始支持记录到 hstore 的转换。

关于postgresql - 从 RECORD 中检索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12936300/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com