Postgresql

將 regexp_split_to_array() 的結果分配給 Pl/pgSQL 數組變數

  • January 7, 2022

如何創建一個數組,然後將函式的結果放入其中?

我這樣做是這樣的:

array text[];
select regexp_split_to_array('whatever this is it splits into array with spaces', E'\\s+')
   into array;

但顯然它不起作用,當我嘗試

raise notice '%', array[1];

這不是它是如何完成的。

**array**是一個保留字您不能將其用作 PL/pgSQL 中的變數名。

這有效:

DO
$do$
DECLARE
  _arr text[];
BEGIN
  SELECT regexp_split_to_array('this splits into array with spaces', '\s+')
  INTO _arr;

  RAISE NOTICE '%', _arr[1];
END
$do$;

SQL小提琴

也簡化了E'\\s+'–> '\s+'

standard_conforming_strings = ON是自 Postgres 9.1 以來的預設設置,現在應該是通用設置。

引用自:https://dba.stackexchange.com/questions/64652