Użyj NULLIF
w swoim oświadczeniu INSERT:
INSERT INTO your_table (cols..., some_date) VALUES (..., NULLIF(your_input_field, ''))
Jeśli chcesz wstawić NULL, jeśli dana wartość jest dowolną z wielu wartości, najłatwiej będzie użyć instrukcji CASE:
INSERT INTO your_table (cols..., some_date)
VALUES (..., CASE WHEN your_input_field IN ('', '#', '-', '--', '??') THEN NULL ELSE your_input_field END)
Może zrobić to samo z tablicą, jeśli to łatwiejsze:
INSERT INTO your_table (cols..., some_date)
VALUES (..., CASE WHEN your_input_field = ANY('{"",#,-,--,??}'::TEXT[]) THEN NULL ELSE your_input_field END)