NULLIF
を使用します INSERTステートメント内:
INSERT INTO your_table (cols..., some_date) VALUES (..., NULLIF(your_input_field, ''))
問題の値がいくつかの値のいずれかである場合にNULLを挿入する場合は、CASEステートメントを使用するのが最も簡単な場合があります。
INSERT INTO your_table (cols..., some_date)
VALUES (..., CASE WHEN your_input_field IN ('', '#', '-', '--', '??') THEN NULL ELSE your_input_field END)
簡単であれば、配列でも同じことができます:
INSERT INTO your_table (cols..., some_date)
VALUES (..., CASE WHEN your_input_field = ANY('{"",#,-,--,??}'::TEXT[]) THEN NULL ELSE your_input_field END)