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)
####################################

Reply via email to