Skip to Content.
Sympa Menu

freetds - Re: [freetds] freebcp: add support for escaping characters?

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Konrad J Hambrick <konrad AT jax01.payplus.com>
  • To: Konrad J Hambrick <konrad AT jax01.payplus.com>
  • Cc: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] freebcp: add support for escaping characters?
  • Date: Wed, 29 Mar 2006 09:41:46 -0500

Thanks for the great feedback, James !

And thanks again for all the great work
on freetds !

-- kjh


James K. Lowden wrote:
Konrad J Hambrick wrote:

What does freebcp do when say, a char (or varchar) field
contains an embedded freebcp (field or record) delimiter char ?


As far as freebcp is concerned, there's no such thing as a delimiter
embedded in the data. You have data, and between the data you have
delimiters. When it sees a delimiter, it marks the end of that field and
the beginning of the next.
Granted, that causes sometimes confusing errors, because partway through
processing your 6-column file it will find "7" columns, often eventually
ending with an error about not being able to convert to type X.
OTOH, in years of dealing with this stuff, I've never truly been stuck for
a delimiter. Normally, I use '\', because it has no place in English
prose. If I do find that character in the data, I can safely change it to
'/'. Similarly, most of the data I work with doesn't have tabs and
newlines, so they're fine delimiters, too. freebcp supports an ASCII NUL
delimiter these days; I bet you won't find that in your character data.
If I were really stuck, I could always use multicharacter sequence
delimiters. '$%^', for example, would do pretty well.
For my money, quoting and escaping are too error-prone, too apt to alter
the data. Sooner or later you'll wind up with escapes in the database. If you've ever seen email with '>From' in it, you know what I'm talking
about.
Regards,
-jkl





Archive powered by MHonArc 2.6.24.

Top of Page