Thread: Handling NULL dates in "copy from" statement
Is there a way to handle NULL date fields that I am trying to import from another database? ex: ...for a table with a single date field that allows NULL... echo "12/31/2000" | psql -c "copy date_tab from stdin using delimiters '|' " db_name ...works, but if I use a blank date... echo "" | psql -c "copy date_tab from stdin using delimiters '|' " db_name ...it fails with "Bad date external representation"... I've tried replacing the empty string with "NULL" and adding " with null as '' " to no avail. Any ideas? Thanks. Tim
The "with null as ''" should work: it does for me. Are you sure that the field truly is empty, i.e. there is no nonprintable character lurking in there? --- Tim Nelson <nelsonx@earthlink.com> wrote: > Is there a way to handle NULL date fields > that I am trying to import from another database? > > ex: > > ...for a table with a single date field that allows > NULL... > > echo "12/31/2000" | psql -c "copy date_tab from > stdin using delimiters '|' " > db_name > > ...works, but if I use a blank date... > > echo "" | psql -c "copy date_tab from stdin using > delimiters '|' " db_name > > ...it fails with "Bad date external > representation"... > > I've tried replacing the empty string with "NULL" > and adding " with null as > '' " to no avail. > > Any ideas? Thanks. Tim > > > > ---------------------------(end of > broadcast)--------------------------- > TIP 2: you can get off all lists at once with the > unregister command > (send "unregister YourEmailAddressHere" to majordomo@postgresql.org) __________________________________________________ Do You Yahoo!? Send your FREE holiday greetings online! http://greetings.yahoo.com
Try replacing the empty string with \N, that's what copy reads as NULL. Jason "Tim Nelson" <nelsonx@earthlink.com> writes: > Is there a way to handle NULL date fields > that I am trying to import from another database? > > ex: > > ...for a table with a single date field that allows NULL... > > echo "12/31/2000" | psql -c "copy date_tab from stdin using delimiters '|' " > db_name > > ...works, but if I use a blank date... > > echo "" | psql -c "copy date_tab from stdin using delimiters '|' " db_name > > ...it fails with "Bad date external representation"... > > I've tried replacing the empty string with "NULL" and adding " with null as > '' " to no avail. > > Any ideas? Thanks. Tim > > > > ---------------------------(end of broadcast)--------------------------- > TIP 2: you can get off all lists at once with the unregister command > (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)