You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PostgreSQL的PL/pgSQL中从变量创建数组?

在PL/pgSQL中从变量创建数组的正确方式

你遇到的语法错误,是因为{p, q}这种数组字面量语法仅支持填入常量值,不能直接包含变量。要从变量创建数组,有几种更合适的写法:

1. 使用ARRAY构造器(推荐,最简洁)

这是从变量创建数组最直接的方式,只需在变量列表前加上ARRAY关键字:

DO
$code$
DECLARE
  p text := 'Hello';
  q text := 'world!';
  ta text[];
BEGIN
  ta := ARRAY[p, q];
  RAISE INFO '% %', ta[1], ta[2];
END
$code$;

2. 使用array_append函数

你找到的这种写法完全可行,适合需要动态逐步添加元素的场景:

DO
$code$
DECLARE
  p text := 'Hello';
  q text := 'world!';
  ta text[];
BEGIN
  RAISE INFO 'p=[%] q=[%]', p, q;
  ta := array_append(array_append(ta, p), q);
  RAISE INFO '% %', ta[1], ta[2];
END
$code$;

3. 数组连接操作符(可选)

如果需要更灵活的构造逻辑,也可以使用数组连接操作符||:

DO
$code$
DECLARE
  p text := 'Hello';
  q text := 'world!';
  ta text[];
BEGIN
  ta := '{}'::text[] || p || q;
  RAISE INFO '% %', ta[1], ta[2];
END
$code$;

内容的提问来源于stack exchange,提问作者twisted

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 16:39:58