无法 运行 带有 select 语句的函数

Unable to run a function with a select statement

我想构建一个 sql 函数,其中 returns 行数组基于 select 语句,不幸的是我无法让它工作。

create or replace function latestOilFee()
return array
IS
Begin
select * from oil_tracker order by ts desc fetch first 1 row only;
End;

控制台抛出错误

syntax error at or near "return"

不应该是RETURNS(不是RETURN)吗?

有多个错误

  1. RETURNS 而不是 RETURN
  2. 对于 ARRAY,您必须像文本一样提及[]
CREATE OR REPLACE FUNCTION latestOilFee()
  RETURNS text[] AS $$
  select array[fieldname::text, fieldname::text]
  FROM oil_tracker limit 1
$$
LANGUAGE SQL;

请检查上面,你应该在创建数组时提到字段类型