in reply to Sybase::BCP

The default for this module is to split the input row into fields using \t as the delimiter. What is the format of your input file?

Michael

Replies are listed 'Best First'.
Re^2: Sybase::BCP
by jilltw (Initiate) on Nov 03, 2004 at 14:24 UTC
    Hi, thanks for replying.

    The input file ($tmp_file) was built earlier in this same script by reading yet another file and extracting the needed fields. Here's the code that reads the original file and writes $tmp_file:
    open FILE,"<$file"; open OUTFILE, ">$tmp_file"; while (<FILE>) { s/^ +//; s/ +$//; s/ +/,/g; ($bin,$tid,$len)=split /,/; $bin = '0'x(6-length($bin)).$bin if length($bin) < 6; $tid=substr($tid,-$len,$len); print OUTFILE "$bin\t$tid\n"; } close OUTFILE;
    The $tmp_file has a tab character between the two fields, $bin and $tid.

    Also, the database table being BCP'd into has two columns, bin is varchar(12) and tid is varchar(24).
      OK - off hand that looks good. Can you load that file using the normal bcp command? And when you load it via Sybase::BCP do you get all NULLs, or just one of the columns?

      Michael

        I did a bcp of the file (/tmp/css.txt) into the DB from the Unix command line & the file loaded properly, all 63 rows as they should be. This was walking through the interactive BCP utility, and I saved off the format file it created.

        When I use the perl script with Sybase::BCP, then isql from the command line to do "select * from tmp_site_term" all I see are NULLS in both columns.

        Thanks.