[freetds] BCP In of data too large fails [NC]
Konrad J Hambrick
konrad at payplus.com
Mon Aug 24 18:16:33 EDT 2009
Thank you James.
We are using either freebcp or MS BCP.EXE to automatically
upload tens-of-GB of data every night on each of 20+ systems
and my vote is for freebcp to work EXACTLY like MS BCP.EXE.
-- kjh
James K. Lowden wrote:
> Cedric ROUVRAIS wrote:
>> If ansi warnings are set to off then the result of a bcp in should be a
>> truncation when the data is to large for the destination column. Sybase
>> bcp works like this for sure, so I added the feature in freebcp.c
>
> Microsoft's bcp.exe refuses to load a row with an overlong value
> regardless of the value of ANSI warnings. Either way, you get this
> message:
>
> $ bcp testdb..a in a.txt -S mpquant -c -T
>
> Starting copy...
> SQLState = 22001, NativeError = 0
> Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
>
> 0 rows copied.
>
> IMO this is the correct behavior, and I see no particular advantage to
> Sybase's choice. Failure is *better*: with it, the user can edit the data
> file or alter the table, and consistently finds errors in the -e error
> file. The change you propose forces the user to look (sometimes,
> depending on the database option) in the output log too, and the message
> doesn't bother to indicate which column is at fault.
>
> I'm not sure full compatibility with Sybase is all that desirable for
> freebcp. For example, rather than truncating your data, wouldn't it be
> better if the user could specify a "rejected row" file? freebcp could
> separate its input into to two piles: rows sent to the database, and rows
> not sent, for one reason or another. The user could peruse the .err file
> (-e output) for problems, and modify & re-process the .rej file, knowing
> anything not in the .rej is already in the table.
>
> Another weakness of both the vendor and FreeTDS bcp utilities is that the
> don't always return an error to the OS if any row was not loaded. That
> makes it useless for batch operations. :-/
>
> --jkl
> _______________________________________________
> FreeTDS mailing list
> FreeTDS at lists.ibiblio.org
> http://lists.ibiblio.org/mailman/listinfo/freetds
>
More information about the FreeTDS
mailing list