Try using either the "Coalesce" function or a "case when ... then ... else ... end" statement... If you still cannot solve your problem, it would be helpful to see the actual script.
Hope it helps.
If you are using VARTEXT format for the input file, all the fields in the USING clause should be declared as VARCHAR, with the max allowable length. You may need to use explicit FORMAT, CAST, etc. to control how Teradata will convert the strings to the appropriate data types, if the default isn't suitable.
But as written, your character field would be loaded with an empty string and padded with spaces. You can translate empty string:
CASE WHEN :String = '' THEN NULL ELSE :String END
Or if an empty string/spaces is a valid value then use COALESCE or CASE on the EXPORT to set the string to some special "flag" value (like '?').

I'm having a problem using BTEQ to import some rows into a table.
I have two bteq scripts, very basic: one exports a table to a flat file, the other imports the data right back from the flat file.
My problem arises with trying to import a row which has a timestamps with a null value. Rows with a null timestamp cause a "6760 Invalid timestamp." error. Both scripts have the statement ".SET NULL AS '?'" at the top of them.
I see Multiload has a NULLIF command, so you can say "NULLIF col01= ''". That's exactly what i want to do, except in BTEQ. Is there a way to do this?
In addition, using FastLoad/FastExport is not an option; this must be done with BTEQ.
Thanks for any advice; this is very frustrating.