DBAtlas · データベース運用アトラス

42P18: indeterminate_datatype

PostgreSQL

意味

PostgreSQL がコンテキストから式またはパラメータのデータ型を推論できなかった。型ヒントのない型未指定のプレースホルダ ($1 など) や裸の NULL を使用した場合に最もよく見られる。

原因

プリペアド文の型未指定パラメータ、"WHERE $1 = $2" のように両辺とも型が不定の比較、またはコンテキストのない NULL/配列リテラルの使用。プランナーがどの型を使うか決定できない。

対処方法

型が不定の式に明示的なキャストを追加する: $1::text、$1::integer、NULL::date など。例: SELECT $1::int + 1; ドライバ/ORM のパラメータに型を指定する。列の比較では、少なくとも一方の型が既知であることを確認する。

DBAtlas で開く →

同じデータベースの他の項目