PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Ulangi dimensi array di plpgsql

Sejak PostgreSQL 9.1 ada FOREACH convenient yang nyaman :

DO
$do$
DECLARE
   m   varchar[];
   arr varchar[] := array[['key1','val1'],['key2','val2']];
BEGIN
   FOREACH m SLICE 1 IN ARRAY arr
   LOOP
      RAISE NOTICE 'another_func(%,%)',m[1], m[2];
   END LOOP;
END
$do$

Solusi untuk versi lama :

DO
$do$
DECLARE
   arr varchar[] := '{{key1,val1},{key2,val2}}';
BEGIN
   FOR i IN array_lower(arr, 1) .. array_upper(arr, 1)
   LOOP
      RAISE NOTICE 'another_func(%,%)',arr[i][1], arr[i][2];
   END LOOP;
END
$do$

Juga, tidak ada perbedaan antara varchar[] dan varchar[][] untuk sistem tipe PostgreSQL. Saya jelaskan lebih detail di sini.

DO pernyataan membutuhkan setidaknya PostgreSQL 9.0, dan LANGUAGE plpgsql adalah default (sehingga Anda dapat menghilangkan deklarasi).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Penyaringan Django JSONField

  2. Kesalahan saat menghubungkan ke postgresql menggunakan sqlalchemy

  3. Bagaimana cara memigrasi database PostgreSQL ke SQLServer?

  4. Array elemen PostgreSQL yang masing-masing merupakan kunci asing

  5. Mustahil untuk Menginstal permata PG di mac saya dengan Mavericks