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

カスタム型配列をPostgres関数に渡す方法

    配列リテラルで代替構文を使用できます Postgres関数のような構造であり、を渡す必要があるときに問題を引き起こす可能性がある配列コンストラクタの代わりに -プリペアドステートメントのように:

    SELECT myschema.myfunc('0d6311cc-0d74-4a32-8cf9-87835651e1ee'
                      , '{"(0d6311cc-0d74-4a32-8cf9-87835651e1ee, 25)"
                        , "(6449fb3b-844e-440e-8973-31eb6bbefc81, 10)"}'::mytype[]);
    

    配列内の2つの行タイプの間に改行を追加して表示しました。それは合法です。

    anyの正しい構文を見つける方法 文字通り?

    Postgresに聞いてください。これがデモです:

    CREATE TABLE mytype (id uuid, amount numeric(13,4));
    
    INSERT INTO mytype VALUES
      ('0d6311cc-0d74-4a32-8cf9-87835651e1ee', 25)
     ,('6449fb3b-844e-440e-8973-31eb6bbefc81', 10);
    
    SELECT ARRAY(SELECT m FROM mytype m);
    

    返品:

    {"(0d6311cc-0d74-4a32-8cf9-87835651e1ee,25.0000)","(6449fb3b-844e-440e-8973-31eb6bbefc81,10.0000)"}
    

    db<>ここでフィドル

    すべてのテーブル(一時テーブルを含む)は、同じ名前の行タイプを暗黙的に作成します。



    1. エクスクルーシブ!アクセスプログラムマネージャーのゲストミハルバーにご参加ください

    2. SQL Serverエージェントジョブ(T-SQL)のジョブステップを更新する

    3. ODP.NET2.111とODP.NET4.112を同じマシンに並べてインストールし、両方が同じデータベースサーバーを指すようにする方法

    4. Oracleでプロセスが複数回実行されないようにする最善の方法はありますか?