I have a file that is tab delimited. I read the file and insert it into my database. The problem that I am having is that some of the strings have an ' in them. This cause the insert to fail at that record. I am inserting it into a MS SQL Server database. How can I replace the ' in those variables. Below is my script

Thanks

#!/usr/bin/perl use strict; use warnings; use DBI; use DBD::ODBC; if (-e "/tf_out2.txt") { } else { die "File does not exist\n"; } my $dbh = DBI->connect( "dbi:ODBC:INSTDev", "sa", "henry", {RaiseError => 1, PrintError => 1, AutoCommit => 1} ) or die "Unable to connect: ";#. $DBI::errstr . "\n"; # Open your file open( INFILE, "/tf_out2.txt" ) or die "Couldn't open file for reading. +$!\n"; while( $line = <INFILE> ) { my @data = split( "\t", $line ); $CLIENT = $data[0]; $RECORD = $data[1]; $CONTROL = $data[2]; $CUSIP = $data[3]; $FROMACCT = $data[4]; $F_IND = $data[5]; $TOACCT = $data[6]; $T_IND = $data[7]; $FP = $data[8]; $ORIGQTY = $data[9]; $DIV = $data[10]; $LTCG = $data[11]; $STCG = $data[12]; $SOCSEC = $data[13]; $BKRNO = $data[14]; $THIRDPARTYCD = $data[15]; $USERID = $data[16]; $EDATE = $data[17]; $ORIGAMT = $data[18]; $CLOSEDIND = $data[19]; $ADPSECNO = $data[20]; $BRNCH = $data[21]; $ACNT = $data[22]; $TYPE = $data[23]; $CHKDIGIT = $data[24]; $PDATE = $data[25]; $ACTLQTY = $data[26]; $ACTLAMT = $data[27]; $CERTIND = $data[28]; $REQST = $data[29]; $RDATE = $data[30]; # $COMNTS = $data[31]; $TRNFTYPE = $data[32]; $FILLER1 = $data[33]; $ADR_L1 = $data[34]; $ADR_L2 = $data[35]; $ADR_L3 = $data[36]; $ADR_L4 = $data[37]; $ADR_L5 = $data[38]; $ADR_L6 = $data[39]; $FILLER_B = $data[40]; $CERTNO1 = $data[41]; $CERTSHRS1 = $data[42]; $CERTNO2 = $data[43]; $CERTSHRS2 = $data[44]; $CERTNO3 = $data[45]; $CERTSHRS3 = $data[46]; $CERTNO4 = $data[47]; $CERTSHRS4 = $data[48]; $CERTNO5 = $data[49]; $CERTSHRS5 = $data[50]; $CERTNO6 = $data[51]; $CERTSHRS6 = $data[52]; $CERTNO7 = $data[53]; $CERTSHRS7 = $data[54]; $CERTNO8 = $data[55]; $CERTSHRS8 = $data[56]; $CERTNO9 = $data[57]; $CERTSHRS9 = $data[58]; $CERTNO10 = $data[59]; $CERTSHRS10 = $data[60]; $FILLER_G = $data[61]; my $sql = ("INSERT INTO mf_forms (CLIENT,RECORD,CONTROL,CUSIP,FR +OMACCT,F_IND,TOACCT,T_IND,". "FP,ORIGQTY,DIV,LTCG,STCG,SOCSEC,BKRNO,THIRD +PARTYCD,USERID,EDATE,". "ORIGAMT,CLOSEDIND,ADPSECNO,BRNCH,ACNT,TYPE,C +HKDIGIT,PDATE,ACTLQTY,". "ACTLAMT,CERTIND,REQST,RDATE,COMNTS,TRNFTYPE,F +ILLER1,ADR_L1,ADR_L2,ADR_L3,". "ADR_L4,ADR_L5,ADR_L6,FILLER_B,CERTNO1,CERTSHRS1 +,CERTNO2,CERTSHRS2,CERTNO3,". "CERTSHRS3,CERTNO4,CERTSHRS4,CERTNO5,CERTSHR +S5,CERTNO6,CERTSHRS6,CERTNO7,CERTSHRS7,". "CERTNO8,CERTSHRS8,CERTNO9,CERTSHRS9,CERTNO10 +,CERTSHRS10,FILLER_G) values ('". $CLIENT. "','" .$RECORD. "','" .$CONTROL. "','" + .$CUSIP. "','" .$FROMACCT. "','" .$F_IND. "','" .$TOACCT. "','" .$T_ +IND. "','" . $FP. "','" .$ORIGQTY. "','" .$DIV. "','" .$LTC +G. "','" .$STCG. "','" .$SOCSEC. "','" .$BKRNO. "','" .$THIRDPARTYCD. + "','" .$USERID. "','" .$EDATE. "','" . $ORIGAMT. "','" .$CLOSEDIND. "','" .$ADPSECNO. + "','" .$BRNCH. "','" .$ACNT. "','" .$TYPE. "','" .$CHKDIGIT. "','" . +$PDATE. "','" .$ACTLQTY. "','" . $ACTLAMT. "','" .$CERTIND. "','" .$REQST. "','" +.$RDATE. "','" .$COMNTS. "','" .$TRNFTYPE. "','" .$FILLER1. "','" .$A +DR_L1. "','" .$ADR_L2. "','" .$ADR_L3. "','" . $ADR_L4. "','" .$ADR_L5. "','" .$ADR_L6. "','" . +$FILLER_B. "','" .$CERTNO1. "','" .$CERTSHRS1. "','" .$CERTNO2. "','" + .$CERTSHRS2. "','" .$CERTNO3. "','" . $CERTSHRS3. "','" .$CERTNO4. "','" .$CERTSHRS4. +"','" .$CERTNO5. "','" .$CERTSHRS5. "','" .$CERTNO6. "','" .$CERTSHRS +6. "','" .$CERTNO7. "','" .$CERTSHRS7. "','" . $CERTNO8. "','" .$CERTSHRS8. "','" .$CERTNO9. "' +,'" .$CERTSHRS9. "','" .$CERTNO10. "','" .$CERTSHRS10. "','" .$FILLER +_G. "')" ); $dbh->do( $sql ) || die "Couldn't insert record. $!\n"; } close(INFILE); $dbh->disconnect;

update (broquaint): added formatting


In reply to Replacing a ' in a string by SamueD2

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.