plpgsqlの複合配列をループします

dbusern

複合配列を定義し、配列の3つの要素を初期化してから、ループ内の各要素を反復処理したいと思いますこのループが必要であり、私が抱えている問題の要件としてそれを繰り返す必要があります。

私は数日間、コードを書いてネット上のいくつかのリソースを参照しようとしましたが、これはうまくいきませんでした。誰かがそれを手伝ってくれる?これがコードですが、最初の初期化でも機能していないため、残りの要件のコードがありません(初期化後に繰り返すため)

CREATE TYPE temp_n_inv_item AS (
    name            text,
    supplier_id     integer,
    price           numeric
);



CREATE OR REPLACE function temp_n_bulk_load2()
returns void
as
$$
declare
   v_t temp_n_inv_item[]; 


BEGIN


      v_t[1] := ARRAY ['Item1',1,10];
      v_t[2] := ARRAY ['Item2',2,20];
      v_t[3] := ARRAY ['Item3',3,30];


 --  raise notice 'first array % ', v_t[1];
--raise notice 'first array % ', v_t[2];
--raise notice 'first array % ', v_t[3];

--iterate though each of the v_t array in a loop 

null; --added as a temporary placeholder 

END;
$$
language plpgsql;

--select temp_n_bulk_load2()

よろしく、DbuserN

更新驚いたことに、質問を投稿した後、1つの参照が表示され、割り当てが機能しているのがわかりましたが、戻り値の型を機能していない配列に変更しようとしています(これは追加の問題です)。ただし、割り当ては以下のように修正されていますが、以下のエラーは「エラー:複合型を返す関数から非複合値を返すことができません」 ですコードを修正しました

CREATE OR REPLACE function temp_n_bulk_load2()
returns temp_n_inv_item
as
$$
declare
   v_t temp_n_inv_item[]; 


BEGIN


      v_t[1] := row ('Item1',1,10);
      v_t[2] := row ('Item2',2,20);
      v_t[3] := row ('Item3',3,30);


  raise notice 'first array % ', v_t[1];
raise notice 'first array % ', v_t[2];
raise notice 'first array % ', v_t[3];

--iterate though each of the v_t array in a loop 

null; --added as a temporary placeholder 
return v_t;

END;
$$
language plpgsql;
バルティモハネ

ここでは、を使用して生成したデータ型の配列を作成しています

CREATE TYPE temp_n_inv_item AS (
    name            text,
    supplier_id     integer,
    price           numeric
);

したがって、データ型の配列をとして返すだけtemp_n_inv_item[]です。

CREATE OR REPLACE FUNCTION adm.temp_n_bulk_load2()
  RETURNS boolean AS
$BODY$
declare
   v_t temp_n_inv_item[]; 


BEGIN

/*CREATE TYPE temp_n_inv_item AS (
    name            text,
    supplier_id     integer,
    price           numeric
);*/
      v_t[1] := row ('Item1',1,10);
      v_t[2] := row ('Item2',2,20);
      v_t[3] := row ('Item3',3,30);


raise notice 'first array % ', v_t[1];
raise notice 'first array % ', v_t[2];
raise notice 'first array % ', v_t[3];

--iterate though each of the v_t array in a loop 
//updated
  FOR cnt in 1..(array_length(v_t,1))
            LOOP
Raise notice ' array value % ', v_t[cnt];

 END LOOP;

return true;

END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;

これがあなたの問題を解決することを願っています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

plpgsqlで複合型の配列を選択します

分類Dev

別々の配列を複数のループに結合しますか?

分類Dev

Plpgsql; すべてのテーブル名を配列に格納します

分類Dev

foreachループphpで複数の配列を作成します

分類Dev

配列をループして、同じ値のキーを合計します

分類Dev

phpはループ内の配列値を合計し、最終値を配列にプッシュします

分類Dev

最初の配列から重複する値なしで2つの配列をループします

分類Dev

値の配列を使用して、numpyを複数のサブ配列にグループ化します

分類Dev

複数の列でグループ化し、forループで1つの列の合計を返します

分類Dev

1つのループで複数の不変配列を初期化します

分類Dev

PythonNumpy-複数のグループのnumpy配列を集約します

分類Dev

ループ内の配列から重複する値を削除します

分類Dev

「内部」配列を返す複数のループから1つの「外部」配列を作成します

分類Dev

配列が空の場合、foreachで単一のループを作成します

分類Dev

AngularJS:ループ内の子配列の値を合計します

分類Dev

SQL Serverは複数の列を合計してグループ化します

分類Dev

配列内の複数のプロパティでオブジェクトをグループ化し、それらの値を合計します

分類Dev

複数の列でグループ化し、別々の列の配列として結果を取得します

分類Dev

Bash:ループ出力から複数の配列を作成します

分類Dev

forループから配列の配列を作成します

分類Dev

配列のループで、配列に要素を追加します

分類Dev

forループを使用して複数の配列を作成する

分類Dev

ループ内に形成された複数の配列を単一の配列に変換します

分類Dev

キーphpの文字列を照合して、配列内のアイテムをグループ化します

分類Dev

配列の値を別の配列の値と照合し、対応する値を新しい配列にループとして返します

分類Dev

ループとif条件を使用して配列の文字列/文字列を照合します-php

分類Dev

パンダ-複数の列を選択して、グループ内の複数の列の2つの配列を合計する

分類Dev

ループ内の配列をループします

分類Dev

複雑なJavaScript配列を結合配列に変換し、テーブルにループする方法は?

Related 関連記事

  1. 1

    plpgsqlで複合型の配列を選択します

  2. 2

    別々の配列を複数のループに結合しますか?

  3. 3

    Plpgsql; すべてのテーブル名を配列に格納します

  4. 4

    foreachループphpで複数の配列を作成します

  5. 5

    配列をループして、同じ値のキーを合計します

  6. 6

    phpはループ内の配列値を合計し、最終値を配列にプッシュします

  7. 7

    最初の配列から重複する値なしで2つの配列をループします

  8. 8

    値の配列を使用して、numpyを複数のサブ配列にグループ化します

  9. 9

    複数の列でグループ化し、forループで1つの列の合計を返します

  10. 10

    1つのループで複数の不変配列を初期化します

  11. 11

    PythonNumpy-複数のグループのnumpy配列を集約します

  12. 12

    ループ内の配列から重複する値を削除します

  13. 13

    「内部」配列を返す複数のループから1つの「外部」配列を作成します

  14. 14

    配列が空の場合、foreachで単一のループを作成します

  15. 15

    AngularJS:ループ内の子配列の値を合計します

  16. 16

    SQL Serverは複数の列を合計してグループ化します

  17. 17

    配列内の複数のプロパティでオブジェクトをグループ化し、それらの値を合計します

  18. 18

    複数の列でグループ化し、別々の列の配列として結果を取得します

  19. 19

    Bash:ループ出力から複数の配列を作成します

  20. 20

    forループから配列の配列を作成します

  21. 21

    配列のループで、配列に要素を追加します

  22. 22

    forループを使用して複数の配列を作成する

  23. 23

    ループ内に形成された複数の配列を単一の配列に変換します

  24. 24

    キーphpの文字列を照合して、配列内のアイテムをグループ化します

  25. 25

    配列の値を別の配列の値と照合し、対応する値を新しい配列にループとして返します

  26. 26

    ループとif条件を使用して配列の文字列/文字列を照合します-php

  27. 27

    パンダ-複数の列を選択して、グループ内の複数の列の2つの配列を合計する

  28. 28

    ループ内の配列をループします

  29. 29

    複雑なJavaScript配列を結合配列に変換し、テーブルにループする方法は?

ホットタグ

アーカイブ