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

複合配列要素にアクセスするplpgsql

    左の式は、PLpgSQLではかなり単純でなければなりません。配列と複合型の組み合わせはサポートされていません。複合型の値を設定してから、この値を配列に割り当てる必要があります。

    CREATE OR REPLACE FUNCTION playx(OUT mod playz[]) AS $$
    DECLARE r playz;
    BEGIN
      FOR i in 1..5 LOOP
        r.a = 1;
        r.b = 12.2;
        r.c = 1;
        r.d = 0.02;
        mod[i] = r;
      END LOOP;
    END;
    $$ LANGUAGE plpgsql;
    

    ショートカットの可能性があります:

    CREATE OR REPLACE FUNCTION public.playx(OUT mod playz[])
    LANGUAGE plpgsql
    AS $function$
    BEGIN
      FOR i in 1..5 LOOP
        mod[i] = ROW(1, 12.2, 1, 0.02);
      END LOOP;
    END;
    $function$;
    


    1. Oracle REPLACE()関数は、キャリッジリターンとラインフィードを処理していません

    2. 区切られた列を別のテーブルに分割するための効率的なクエリ

    3. 各クエリの更新にかかるExcelODBCデータ接続クエリの時間

    4. Oracle-複数の値で使用する場合のCLAUSEの質問で、動的にする