PostgreSQL エラー「ERROR: 関数to_json(xxx,xxx)は存在しません」が発生した場合の対処法

PostgreSQL エラー「ERROR: 関数to_json(xxx,xxx)は存在しません」が発生した場合の対処法

PostgreSQLで、エラー「ERROR: 関数to_json(xxx,xxx)は存在しません」が発生した場合の対処法を記述してます。「to_json」に対して、引数を複数設定した場合に発生します。

環境

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

エラー全文

以下のテーブルに対して「to_json」にカラムを指定した際に発生。

カラム「name」と「age」を指定して「to_json」を実行してます。

SELECT to_json(name,age) from testtbl;

ERROR:  関数to_json(text, integer)は存在しません
LINE 1: SELECT to_json(name,age) from testtbl;
               ^
HINT:  指定した名前と引数型に合致する関数がありません。明示的な型変換が必要かもしれません。
SQL 状態: 42883
文字: 8

原因

「to_json」は複数の引数を実行できない。

対処法

サブクエリを使用します。

select to_json(sub)
from (
    select name,age
    from testtbl    
) sub;

実行結果