Postgresql地址变量记录中的特定列

时间:2015-08-24 08:32:55

标签: postgresql record plpgsql

如何处理记录中的特定字段,或者我甚至可以像在Oracle中一样定义记录

DECLARE
   TYPE timerec IS RECORD (hours SMALLINT, minutes SMALLINT);
BEGIN
-- something
END;

以下是我的意思

的例子
do $$
declare
radek record; -- is it posible to define elements in record, I found nothing in postgres documentation
begin
select 'c1', timestamp 'now' , 8 into radek ;
raise notice '% ' , radek;
-- I want to display/select only the middle value (time) 
-- so I need something like raise notice '% ' , radek(2)
radek := (1::int , 'text'::text, date 'tomorrow' );
raise notice '% ' , radek;
-- same case here
end $$

我使用不同的数据类型,因此数组不是解决方案

1 个答案:

答案 0 :(得分:0)

在句点之后使用列名称。您可以使用别名:

do $$
declare
    radek record;
begin
    select 'c1' as c1, timestamp 'now' as tstamp, 8 as eight into radek ;
    raise notice '% % %' , radek.c1, radek.tstamp, radek.eight;
end $$