Hi all, I'm getting a string truncation error on a couple of unlikely tables. The error is:
DBD::ODBC::st fetchrow_arrayref failed: [Oracle][ODBC]String data, right truncat ed. (SQL-01004)(DBD: st_fetch/SQLFetch (long truncated DBI attribute LongTruncOk not set and/or LongReadLen too small) err=-1) at c:\paul\code\backup\backup-db- table.pl line 21. When I googled that error, most comments suggested it was related to LONG or CLOB fields. At the bottom of this e-mail is the code and descriptions of the two tables generating that error. Neither has any longs or clobs, and about the only common feature I see is trailing null-able floats. Both tables are fairly large (millions of rows). Finally, if I add: $dbh->{LongReadLen} = 1024 * 10; The problem remains. Any thoughts on what's going on here? Paul ########################################## WinXP DBI 1.39 DBD::ODBC 1.06 Perl 5.8.0 ########################################## use strict; use DBI; my $table = $ARGV[0]; my $connect = 'dbi:ODBC:dbname'; my $user = 'user'; my $pass = 'password'; my $dbh = DBI->connect($connect, $user, $pass, {RaiseError => 1, PrintError => 1, AutoCommit => 0} ) or die "Unable to connect: " . $DBI::errstr . "\n"; my $sql = "SELECT * FROM $table"; my $sth = $dbh->prepare($sql); $sth->execute(); open(OUT, '>', "$table-backup.txt"); no warnings; while (my $ref = $sth->fetchrow_arrayref()) { for (my $i = 0; $i < scalar(@$ref); $i++) { $$ref[$i] = '"'.$$ref[$i].'"'; } print OUT join(',', @$ref), "\n"; } use warnings; close(OUT); $dbh->disconnect(); #################################### #################################### PROCESSING_ID NOT NULL NUMBER(10) ASSAY_ID NOT NULL NUMBER(8) COMPOSITE_ELEMENT_ID NOT NULL NUMBER(10) ARRAY_ID NOT NULL NUMBER(4) SIGNAL_1 NOT NULL FLOAT(19) SIGNAL_2 FLOAT(19) QUALITY_1 FLOAT(19) QUALITY_2 FLOAT(19) ERROR_1 FLOAT(19) ERROR_2 FLOAT(19) #################################### EXPERIMENT_ID NOT NULL NUMBER(10 PROCESSING_ID NOT NULL NUMBER(10 COMPOSITE_ELEMENT_ID NOT NULL NUMBER(10 COL1_SIGNAL1 FLOAT(19) COL1_SIGNAL2 FLOAT(19) COL1_QUALITY1 FLOAT(19) COL1_QUALITY2 FLOAT(19) COL1_ERROR1 FLOAT(19) COL1_ERROR2 FLOAT(19) COL2_SIGNAL1 FLOAT(19) COL2_SIGNAL2 FLOAT(19) COL2_QUALITY1 FLOAT(19) COL2_QUALITY2 FLOAT(19) COL2_ERROR1 FLOAT(19) COL2_ERROR2 FLOAT(19) COL3_SIGNAL1 FLOAT(19) COL3_SIGNAL2 FLOAT(19) COL3_QUALITY1 FLOAT(19) COL3_QUALITY2 FLOAT(19) COL3_ERROR1 FLOAT(19) COL3_ERROR2 FLOAT(19) COL4_SIGNAL1 FLOAT(19) COL4_SIGNAL2 FLOAT(19) COL4_QUALITY1 FLOAT(19) COL4_QUALITY2 FLOAT(19) COL4_ERROR1 FLOAT(19) COL4_ERROR2 FLOAT(19) COL5_SIGNAL1 FLOAT(19) COL5_SIGNAL2 FLOAT(19) COL5_QUALITY1 FLOAT(19) COL5_QUALITY2 FLOAT(19) COL5_ERROR1 FLOAT(19) COL5_ERROR2 FLOAT(19) COL6_SIGNAL1 FLOAT(19) COL6_SIGNAL2 FLOAT(19) COL6_QUALITY1 FLOAT(19) COL6_QUALITY2 FLOAT(19) COL6_ERROR1 FLOAT(19) COL6_ERROR2 FLOAT(19) COL7_SIGNAL1 FLOAT(19) COL7_SIGNAL2 FLOAT(19) COL7_QUALITY1 FLOAT(19) COL7_QUALITY2 FLOAT(19) COL7_ERROR1 FLOAT(19) COL7_ERROR2 FLOAT(19) COL8_SIGNAL1 FLOAT(19) COL8_SIGNAL2 FLOAT(19) COL8_QUALITY1 FLOAT(19) COL8_QUALITY2 FLOAT(19) COL8_ERROR1 FLOAT(19) COL8_ERROR2 FLOAT(19) COL9_SIGNAL1 FLOAT(19) COL9_SIGNAL2 FLOAT(19) COL9_QUALITY1 FLOAT(19) COL9_QUALITY2 FLOAT(19) COL9_ERROR1 FLOAT(19) COL9_ERROR2 FLOAT(19) COL10_SIGNAL1 FLOAT(19) COL10_SIGNAL2 FLOAT(19) COL10_QUALITY1 FLOAT(19) COL10_QUALITY2 FLOAT(19) COL10_ERROR1 FLOAT(19) COL10_ERROR2 FLOAT(19) COL11_SIGNAL1 FLOAT(19) COL11_SIGNAL2 FLOAT(19) COL11_QUALITY1 FLOAT(19) COL11_QUALITY2 FLOAT(19) COL11_ERROR1 FLOAT(19) COL11_ERROR2 FLOAT(19) COL12_SIGNAL1 FLOAT(19) COL12_SIGNAL2 FLOAT(19) COL12_QUALITY1 FLOAT(19) COL12_QUALITY2 FLOAT(19) COL12_ERROR1 FLOAT(19) COL12_ERROR2 FLOAT(19) COL13_SIGNAL1 FLOAT(19) COL13_SIGNAL2 FLOAT(19) COL13_QUALITY1 FLOAT(19) COL13_QUALITY2 FLOAT(19) COL13_ERROR1 FLOAT(19) COL13_ERROR2 FLOAT(19) COL14_SIGNAL1 FLOAT(19) COL14_SIGNAL2 FLOAT(19) COL14_QUALITY1 FLOAT(19) COL14_QUALITY2 FLOAT(19) COL14_ERROR1 FLOAT(19) COL14_ERROR2 FLOAT(19) COL15_SIGNAL1 FLOAT(19) COL15_SIGNAL2 FLOAT(19) COL15_QUALITY1 FLOAT(19) COL15_QUALITY2 FLOAT(19) COL15_ERROR1 FLOAT(19) COL15_ERROR2 FLOAT(19) COL16_SIGNAL1 FLOAT(19) COL16_SIGNAL2 FLOAT(19) COL16_QUALITY1 FLOAT(19) COL16_QUALITY2 FLOAT(19) COL16_ERROR1 FLOAT(19) COL16_ERROR2 FLOAT(19) COL17_SIGNAL1 FLOAT(19) COL17_SIGNAL2 FLOAT(19) COL17_QUALITY1 FLOAT(19) COL17_QUALITY2 FLOAT(19) COL17_ERROR1 FLOAT(19) COL17_ERROR2 FLOAT(19) COL18_SIGNAL1 FLOAT(19) COL18_SIGNAL2 FLOAT(19) COL18_QUALITY1 FLOAT(19) COL18_QUALITY2 FLOAT(19) COL18_ERROR1 FLOAT(19) COL18_ERROR2 FLOAT(19) COL19_SIGNAL1 FLOAT(19) COL19_SIGNAL2 FLOAT(19) COL19_QUALITY1 FLOAT(19) COL19_QUALITY2 FLOAT(19) COL19_ERROR1 FLOAT(19) COL19_ERROR2 FLOAT(19) COL20_SIGNAL1 FLOAT(19) COL20_SIGNAL2 FLOAT(19) COL20_QUALITY1 FLOAT(19) COL20_QUALITY2 FLOAT(19) COL20_ERROR1 FLOAT(19) COL20_ERROR2 FLOAT(19) ####################################