PostgreSQL オブジェクトの配列からレコードを作成する

PostgreSQL オブジェクトの配列からレコードを作成する

PostgreSQLで、オブジェクトの配列からレコードを作成する手順を記述してます。「json_to_recordset」を使用することで可能です。AS句を使って実行します。

環境

  • OS CentOS Stream release 9
  • PostgreSQL 15.1
  • pgadmin4 6.16

オブジェクトの配列からレコードを作成

オブジェクトの配列からレコードを作成するには、「json_to_recordset」を使用します。
※「josnb」型には「jsonb_to_recordset」を使用します。

json_to_recordset(オブジェクトの配列) AS句;

json_to_recordset(オブジェクトの配列) AS句;

実際に、実行してみます。

SELECT
  *
FROM
  json_to_recordset(
  '[
  { "name": "kusano", "age": 20 },
  { "name": "sasaki", "age": 25 },
  { "name": "sasaki", "age": 25 }
  ]'
  ) AS x(name TEXT, age INT);

実行結果をみると、レコードが作成されていることが確認できます。

AS句を使用しないと、エラーが発生します。

SELECT
  *
FROM
  json_to_recordset(
  '[
  { "name": "kusano", "age": 20 },
  { "name": "sasaki", "age": 25 },
  { "name": "sasaki", "age": 25 }
  ]'
  );

ERROR:  "record"を返す関数では列定義リストが必要です
LINE 4:   json_to_recordset(
          ^
SQL 状態: 42601
文字: 19

実行結果