sql >> データベース >  >> RDS >> PostgreSQL

plpgsqlの配列次元をループします

    PostgreSQL以降9.1 便利なFOREACHがあります

    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$
    

    古いバージョンのソリューション :

    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$
    

    また、varchar[]の間に違いはありません およびvarchar[][] PostgreSQL型システムの場合。ここで詳しく説明します。

    DO ステートメントには、少なくともPostgreSQL 9.0、およびLANGUAGE plpgsqlが必要です。 がデフォルトです(宣言を省略できます)。




    1. データベース駆動型Webサイトについて知っておくべきこと

    2. OracleのINSTR()関数

    3. PHPのstrip_tagsに相当するMySQLクエリとは何ですか?

    4. DBMSコンテキストでのBLOBとは正確には何ですか