• Index
  •  » Talend Open Studio for Data Integration » Installation
  •  » Does it exist a way to see whatexactly is being passed to database ?

#1 2006-10-21 19:19:19

jmreymond
Member
Registered: 2006-09-20
Posts: 52

Does it exist a way to see whatexactly is being passed to database ?

I have an infamous error message but no way to look at the string sended to database:

DBD:tongueg::st execute failed: ERROR:  syntax error at or near "(" at character 19
can't execute insert query

Offline

#2 2006-10-23 10:34:36

plegall
Member
Registered: 2006-09-19
Posts: 1586
Website

Re: Does it exist a way to see whatexactly is being passed to database ?

The syntax error is surprising. Can you copy/paste the content of the generated Perl code? The Perl code is available in the "Code" tab next to designer in the job.

Offline

#3 2006-10-23 10:47:41

jmreymond
Member
Registered: 2006-09-20
Posts: 52

Re: Does it exist a way to see whatexactly is being passed to database ?

warning, it is big !

Code:

#!/usr/bin/perl

=head1 
Process , version , status .
Author: 
Purpose: 

=cut




my $_licence = <<'END_OF_LICENCE';

  Copyright (c) 2005-2006, Talend SA

  This source code has been automatically generated by talend
  OpenStudio / ProcessDesigner (CodeGenerator version 1.0.0.20061004-2013-V1).
  You can find more information about talend products at www.talend.com.
  You may distribute this code under the terms of either the GNU General
  Public License or under the Artistic License just like Perl itself.

END_OF_LICENCE

print $_licence;

use Getopt::Long;
my %opt = ();
GetOptions(
    \%opt,
    qw/context=s stat_port=i trace_port=i/
);

our %_context;
our %_globals;

if (defined $opt{context}) {
    print(
        'tsInfo>  Running process with context: ',
        $opt{context},
        ' (./tUser/parameters_', $opt{context}, '.pl)',
        "\n\n"
    );

    require $opt{context};
}

use AAPCA__Routines;

use constant true   => 1;
use constant false  => 0;
use constant null   => undef;

$SIG{__DIE__} = \&global_die_catcher;
$current_component=undef;

sub global_die_catcher {
    if (defined $current_component) {
        my $dying_component = $current_component;

        our $_globals;

        my $exception = $_[0];
        chomp($exception);

        $_globals{$dying_component}{ERROR_MESSAGE}      = $exception;
        $_globals{$dying_component}{PERL_ERROR_MESSAGE} = $!;
        $_globals{$dying_component}{PERL_ERROR_CODE}    = int($!);

        if (defined &main::tCatcher_1_subprocess) {
            tCatcher_1_subprocess(
                origin => 'die',
                priority => 100,
                error_message => $_globals{$dying_component}{ERROR_MESSAGE},
                perl_error_message => $_globals{$dying_component}{PERL_ERROR_MESSAGE},
                perl_error_code => $_globals{$dying_component}{PERL_ERROR_CODE},
            );
        }

        no strict 'refs';
        &{$dying_component.'_error'}();
    }
}
sub tFileInputPositional_1_error() {
}
sub tMap_1_error() {
}
sub tDBOutput_2_error() {
}

# +-------------------------------------------------------------------------+
# | [subprocess header] starts here                                         |
# +-------------------------------------------------------------------------+ 

    sub tFileInputPositional_1_subprocess  {
# +-------------------------------------------------------------------------+
# | [subprocess header] stops here                                          |
# +-------------------------------------------------------------------------+ 
# +-------------------------------------------------------------------------+
# | [tDBOutput_2 start ] starts here                |
# +-------------------------------------------------------------------------+ 

$current_component="tDBOutput_2";



=head1 tDBOutput tDBOutput_2

=cut

$_globals{tDBOutput_2}{OK} = false;


use DBI;
use talend::dbOp;
use talend::misc;

my %desc_tDBOutput_2 = (
    dbtype        => 'postgresql',
    driver        => 'Pg',
    dbhost        => 'aapca.dyndns.org',
    dbport        => '5432',
    dbname        => 'vav',
    dbtable       => '',
    dbuser        => 'postgres',
    dbpass        => '',
    encoding      => 'ISO-8859-15',
    packet_size   => 1,
    schema        => [
        {
            name    => 'idcode',
            key     => true,
            type    => 'null',
            dbtype  => 'null', # POSTGRESQL
            len     => 4,
            precision => 0,
            null    => false,
            default => '',
            comment => 'code membre',
        },
    
        {
            name    => 'langue',
            key     => false,
            type    => 'String',
            dbtype  => 'VARCHAR', # POSTGRESQL
            len     => 0,
            precision => 0,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'sexe',
            key     => false,
            type    => 'null',
            dbtype  => 'null', # POSTGRESQL
            len     => 4,
            precision => 0,
            null    => false,
            default => '',
            comment => 'naure sexe ou type société',
        },
    
        {
            name    => 'nom',
            key     => false,
            type    => 'String',
            dbtype  => 'VARCHAR', # POSTGRESQL
            len     => 50,
            precision => 0,
            null    => false,
            default => '',
            comment => 'nom',
        },
    
        {
            name    => 'prenom',
            key     => false,
            type    => 'String',
            dbtype  => 'VARCHAR', # POSTGRESQL
            len     => 50,
            precision => 0,
            null    => false,
            default => '',
            comment => 'prénom',
        },
    
        {
            name    => 'datnais',
            key     => false,
            type    => 'Day',
            dbtype  => 'TIMESTAMP', # POSTGRESQL
            len     => 4,
            precision => 0,
            null    => false,
            default => '',
            comment => 'date naissance',
        },
    
        {
            name    => 'lieunais',
            key     => false,
            type    => 'String',
            dbtype  => 'VARCHAR', # POSTGRESQL
            len     => 50,
            precision => 0,
            null    => true,
            default => '',
            comment => 'lieu de naissance',
        },
    
        {
            name    => 'adresse1',
            key     => false,
            type    => 'String',
            dbtype  => 'VARCHAR', # POSTGRESQL
            len     => 50,
            precision => 0,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'adresse2',
            key     => false,
            type    => 'String',
            dbtype  => 'VARCHAR', # POSTGRESQL
            len     => 50,
            precision => 0,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'codepost',
            key     => false,
            type    => 'String',
            dbtype  => 'VARCHAR', # POSTGRESQL
            len     => 8,
            precision => 0,
            null    => true,
            default => '',
            comment => 'code postal',
        },
    
        {
            name    => 'ville',
            key     => false,
            type    => 'String',
            dbtype  => 'VARCHAR', # POSTGRESQL
            len     => 50,
            precision => 0,
            null    => false,
            default => '',
            comment => 'ville',
        },
    
        {
            name    => 'mafe',
            key     => false,
            type    => 'null',
            dbtype  => 'null', # POSTGRESQL
            len     => 1,
            precision => 0,
            null    => false,
            default => '',
            comment => 'membre associé français/étranger',
        },
    
        {
            name    => 'noconvt',
            key     => false,
            type    => 'null',
            dbtype  => 'null', # POSTGRESQL
            len     => 4,
            precision => 0,
            null    => false,
            default => '',
            comment => 'numéro de convention',
        },
    
        {
            name    => 'teldom',
            key     => false,
            type    => 'String',
            dbtype  => 'VARCHAR', # POSTGRESQL
            len     => 15,
            precision => 0,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'telbur',
            key     => false,
            type    => 'String',
            dbtype  => 'VARCHAR', # POSTGRESQL
            len     => 15,
            precision => 0,
            null    => true,
            default => '',
            comment => 'téléphone bureau',
        },
    
        {
            name    => 'telfax',
            key     => false,
            type    => 'String',
            dbtype  => 'VARCHAR', # POSTGRESQL
            len     => 15,
            precision => 0,
            null    => true,
            default => '',
            comment => 'numéro de fax',
        },
    
        {
            name    => 'telmob',
            key     => false,
            type    => 'String',
            dbtype  => 'VARCHAR', # POSTGRESQL
            len     => 15,
            precision => 0,
            null    => true,
            default => '',
            comment => 'numéro de téléphone mobile',
        },
    
        {
            name    => 'email',
            key     => false,
            type    => 'String',
            dbtype  => 'VARCHAR', # POSTGRESQL
            len     => 80,
            precision => 0,
            null    => true,
            default => '',
            comment => '@ email',
        },
    
        {
            name    => 'dsousmemb',
            key     => false,
            type    => 'Day',
            dbtype  => 'TIMESTAMP', # POSTGRESQL
            len     => 4,
            precision => 0,
            null    => false,
            default => '',
            comment => 'date première inscription',
        },
    
        {
            name    => 'dda',
            key     => false,
            type    => 'Day',
            dbtype  => 'TIMESTAMP', # POSTGRESQL
            len     => 4,
            precision => 0,
            null    => false,
            default => '',
            comment => 'date début cotisation année en cours',
        },
    
        {
            name    => 'dfa',
            key     => false,
            type    => 'Day',
            dbtype  => 'TIMESTAMP', # POSTGRESQL
            len     => 4,
            precision => 0,
            null    => false,
            default => '',
            comment => 'date fin cotisation année en cours',
        },
    
        {
            name    => 'ddp',
            key     => false,
            type    => 'Day',
            dbtype  => 'TIMESTAMP', # POSTGRESQL
            len     => 4,
            precision => 0,
            null    => true,
            default => '',
            comment => 'date début cotisation année précédente',
        },
    
        {
            name    => 'dfp',
            key     => false,
            type    => 'Day',
            dbtype  => 'TIMESTAMP', # POSTGRESQL
            len     => 4,
            precision => 0,
            null    => true,
            default => '',
            comment => 'date fin cotisation année précédente',
        },
    
        {
            name    => 'debvv',
            key     => false,
            type    => 'Day',
            dbtype  => 'TIMESTAMP', # POSTGRESQL
            len     => 4,
            precision => 0,
            null    => false,
            default => '',
            comment => 'début vol à voile',
        },
    
        {
            name    => 'dvalmedv',
            key     => false,
            type    => 'Day',
            dbtype  => 'TIMESTAMP', # POSTGRESQL
            len     => 4,
            precision => 0,
            null    => true,
            default => '',
            comment => 'date validité visite médicale vol à voile',
        },
    
        {
            name    => 'dvalmedm',
            key     => false,
            type    => 'Day',
            dbtype  => 'TIMESTAMP', # POSTGRESQL
            len     => 4,
            precision => 0,
            null    => true,
            default => '',
            comment => 'date validité visite médicale moteur',
        },
    
        {
            name    => 'hdbvv',
            key     => false,
            type    => 'Day',
            dbtype  => 'TIMESTAMP', # POSTGRESQL
            len     => 8,
            precision => 6,
            null    => true,
            default => '',
            comment => 'cumul heures en double commande',
        },
    
        {
            name    => 'hcdbvv',
            key     => false,
            type    => 'Day',
            dbtype  => 'TIMESTAMP', # POSTGRESQL
            len     => 8,
            precision => 6,
            null    => true,
            default => '',
            comment => 'cumul heures commandant de bord',
        },
    
        {
            name    => 'hdbmo',
            key     => false,
            type    => 'Day',
            dbtype  => 'TIMESTAMP', # POSTGRESQL
            len     => 8,
            precision => 6,
            null    => true,
            default => '',
            comment => 'cumul heures double commande moteur',
        },
    
        {
            name    => 'hcdbmo',
            key     => false,
            type    => 'Day',
            dbtype  => 'TIMESTAMP', # POSTGRESQL
            len     => 8,
            precision => 6,
            null    => true,
            default => '',
            comment => 'cumul heures commandant de bord moteur',
        },
    
        {
            name    => 'nolicence',
            key     => false,
            type    => 'String',
            dbtype  => 'VARCHAR', # POSTGRESQL
            len     => 10,
            precision => 0,
            null    => true,
            default => '',
            comment => 'numéro de licence',
        },
    
        {
            name    => 'dlicence',
            key     => false,
            type    => 'Day',
            dbtype  => 'TIMESTAMP', # POSTGRESQL
            len     => 4,
            precision => 0,
            null    => true,
            default => '',
            comment => 'date souscription licence',
        },
    
        {
            name    => 'accident',
            key     => false,
            type    => 'String',
            dbtype  => 'VARCHAR', # POSTGRESQL
            len     => 80,
            precision => 0,
            null    => true,
            default => '',
            comment => 'personne à contacter en cas daccident',
        },
    
        {
            name    => 'telaccident',
            key     => false,
            type    => 'String',
            dbtype  => 'VARCHAR', # POSTGRESQL
            len     => 64,
            precision => 0,
            null    => true,
            default => '',
            comment => 'téléphone si accident',
        },
    
        {
            name    => 'solde',
            key     => false,
            type    => 'double',
            dbtype  => 'DOUBLE PRECISION', # POSTGRESQL
            len     => 8,
            precision => 2,
            null    => true,
            default => '',
            comment => 'solde',
        },
    
        {
            name    => 'creditrem',
            key     => false,
            type    => 'Day',
            dbtype  => 'TIMESTAMP', # POSTGRESQL
            len     => 8,
            precision => 6,
            null    => true,
            default => '',
            comment => 'crédit remorquage',
        },
    
        {
            name    => 'cptcg',
            key     => false,
            type    => 'null',
            dbtype  => 'null', # POSTGRESQL
            len     => 6,
            precision => 0,
            null    => true,
            default => '',
            comment => 'compte CG ',
        },
    
        {
            name    => 'convocat',
            key     => false,
            type    => 'null',
            dbtype  => 'null', # POSTGRESQL
            len     => 1,
            precision => 0,
            null    => true,
            default => '',
            comment => 'code convocation',
        },
    
        {
            name    => 'tpsec',
            key     => false,
            type    => 'Day',
            dbtype  => 'TIMESTAMP', # POSTGRESQL
            len     => 8,
            precision => 6,
            null    => true,
            default => '',
            comment => 'cumul des heures de vol pour réduction',
        },
    
        {
            name    => 'danvol',
            key     => false,
            type    => 'Day',
            dbtype  => 'TIMESTAMP', # POSTGRESQL
            len     => 4,
            precision => 0,
            null    => true,
            default => '',
            comment => 'date année vol pour réduction',
        },
    
    ]
);

my $nb_fields_tDBOutput_2 = scalar @{ $desc_tDBOutput_2{schema} };

my $action = 'NONE';

my ($create_table, $drop_create_table, $clear_table) = (0, 0, 0);

if ($action eq 'CREATE_TABLE') {
    $create_table = 1;
}
elsif ($action eq 'DROP_CREATE_TABLE') {
    $drop_create_table = 1;
}
elsif ($action eq 'CLEAR_TABLE') {
    $clear_table = 1;
}

my $create = 0;
my $drop = $drop_create_table;

if ($create_table or $drop_create_table) {
    $create = 1;
}


my $dbh_tDBOutput_2 = DBI->connect(
    getConnectionString(
        driver => $desc_tDBOutput_2{driver},
        dbname => $desc_tDBOutput_2{dbname},
        dbhost => $desc_tDBOutput_2{dbhost},
        dbport => $desc_tDBOutput_2{dbport},
    ),
    $desc_tDBOutput_2{dbuser},
    $desc_tDBOutput_2{dbpass},
)
    or die "can't connect to database";

my $sth_tDBOutput_2;
my $query;

if ($desc_tDBOutput_2{dbtype} eq 'mysql'
    and lc $desc_tDBOutput_2{encoding} eq 'utf-8') {
    $query = '
set names "UTF8"
';
    $sth_tDBOutput_2 = $dbh_tDBOutput_2->prepare($query);
    $sth_tDBOutput_2->execute();
}

if ($create) {
    my $schema = '%';

    if ($desc_tDBOutput_1{driver} eq 'oracle') {
        $schema = uc $desc_tDBOutput_1{dbuser};
    }

    my $tabsth = $dbh_tDBOutput_1->table_info('%', $schema);
    my @tables = ();

    while (my($qual, $owner, $table, $type) = $tabsth->fetchrow_array()) {
        push @tables, lc($table);
    }

#     print "===\n";
#     print "existing tables:\n";
#     print join("\n", map {"  - ".$_} @tables), "\n";
#     print "===\n";

    # if table already exists
    my $test_table = lc $desc_tDBOutput_2{dbtable};
    my $table_exists = grep /^$test_table$/, @tables;

    if ($drop and $table_exists) {
        # we have to drop the table
        $query = '
DROP TABLE '.$desc_tDBOutput_2{dbtable}.'
';
        $sth_tDBOutput_2 = $dbh_tDBOutput_2->prepare($query);

        $sth_tDBOutput_2->execute()
            or die "can't drop table";

        # the table does not exist anymore
        $table_exists = 0;
    }

    if (not $table_exists) {
        # now we create the table
        $query = getTableCreationQuery(
            tablename  => $desc_tDBOutput_2{dbtable},
            schema     => $desc_tDBOutput_2{schema},
            dbtype     => postgresql,
        );
        
        $sth_tDBOutput_2 = $dbh_tDBOutput_2->prepare(
            $query
        );
        
        $sth_tDBOutput_2->execute()
            or die "can't create table";
    }
    else {
        warn(
            sprintf(
                'table "%s" already exists'."\n",
                $desc_tDBOutput_2{dbtable}
            )
        );
    }
}

if ($clear_table) {
    $query = '
DELETE
  FROM '.$desc_tDBOutput_2{dbtable}.'
';

    $sth_tDBOutput_2 = $dbh_tDBOutput_2->prepare($query);

    $sth_tDBOutput_2->execute()
        or die "can't clear table";
}

my @colnames = map { $_->{name} } @{ $desc_tDBOutput_2{schema} };

my $query_start_tDBOutput_2 = '
INSERT
  INTO '.$desc_tDBOutput_2{dbtable}.'
  ('.join(',', @colnames).')
  VALUES
';

my $question_marks_tDBOutput_2 = sprintf(
    '(%s)',
    join(',', map {'?'} @colnames)
);

$query = $query_start_tDBOutput_2.'
  '.$question_marks_tDBOutput_2.",$question_marks_tDBOutput_2"x($desc_tDBOutput_2{packet_size}-1).'
';

my $sth_tDBOutput_2 = $dbh_tDBOutput_2->prepare(
    $query
);

my $nb_line_tDBOutput_2 = 0;
my @lines_tDBOutput_2 = ();



# +-------------------------------------------------------------------------+
# | [tDBOutput_2 start ] ends here                  |
# +-------------------------------------------------------------------------+ 
# +-------------------------------------------------------------------------+
# | [tMap_1 start ] starts here                |
# +-------------------------------------------------------------------------+ 

$current_component="tMap_1";



=head1 tMap tMap_1

=cut

$_globals{tMap_1}{OK} = false;



  use constant row1__nocode => 0;
  use constant row1__langue => 1;
  use constant row1__sexe => 2;
  use constant row1__titre => 3;
  use constant row1__nom => 4;
  use constant row1__prenom => 5;
  use constant row1__datenais => 6;
  use constant row1__lieunais => 7;
  use constant row1__adresse1 => 8;
  use constant row1__adresse2 => 9;
  use constant row1__codepost => 10;
  use constant row1__ville => 11;
  use constant row1__mafe => 12;
  use constant row1__noconvt => 13;
  use constant row1__plus25 => 14;
  use constant row1__pm => 15;
  use constant row1__telephondom => 16;
  use constant row1__telephonbureau => 17;
  use constant row1__fax => 18;
  use constant row1__sousmemb => 19;
  use constant row1__dda => 20;
  use constant row1__dfa => 21;
  use constant row1__ddp => 22;
  use constant row1__dfp => 23;
  use constant row1__debvv => 24;
  use constant row1__reducon => 25;
  use constant row1__valvmed => 26;
  use constant row1__valmmed => 27;
  use constant row1__ddbvv => 28;
  use constant row1__hdbvv => 29;
  use constant row1__mdbvv => 30;
  use constant row1__sdbvv => 31;
  use constant row1__dslvv => 32;
  use constant row1__hslvv => 33;
  use constant row1__mslvv => 34;
  use constant row1__sslvv => 35;
  use constant row1__ddbmo => 36;
  use constant row1__hdbmo => 37;
  use constant row1__mdbmo => 38;
  use constant row1__sdbmo => 39;
  use constant row1__dslmo => 40;
  use constant row1__hslmo => 41;
  use constant row1__mslmo => 42;
  use constant row1__sslmo => 43;
  use constant row1__nolicenc => 44;
  use constant row1__valicenc => 45;
  use constant row1__accident => 46;
  use constant row1__telaccident => 47;
  use constant row1__solde => 48;
  use constant row1__credirem => 49;
  use constant row1__deroper => 50;
  use constant row1__deredit => 51;
  use constant row1__dopej => 52;
  use constant row1__cptfour => 53;
  use constant row1__convocat => 54;
  use constant row1__mtdervt => 55;
  use constant row1__datdervt => 56;
  use constant row1__dintern => 57;
  use constant row1__solde01 => 58;
  use constant row1__solde12 => 59;
  use constant row1__solde03 => 60;
  use constant row1__tpsec => 61;
  use constant row1__anvols => 62;
  use constant row1__anomalie => 63;

  use constant versVVA__idcode => 0;
  use constant versVVA__langue => 1;
  use constant versVVA__sexe => 2;
  use constant versVVA__nom => 3;
  use constant versVVA__prenom => 4;
  use constant versVVA__datnais => 5;
  use constant versVVA__lieunais => 6;
  use constant versVVA__adresse1 => 7;
  use constant versVVA__adresse2 => 8;
  use constant versVVA__codepost => 9;
  use constant versVVA__ville => 10;
  use constant versVVA__mafe => 11;
  use constant versVVA__noconvt => 12;
  use constant versVVA__teldom => 13;
  use constant versVVA__telbur => 14;
  use constant versVVA__telfax => 15;
  use constant versVVA__telmob => 16;
  use constant versVVA__email => 17;
  use constant versVVA__dsousmemb => 18;
  use constant versVVA__dda => 19;
  use constant versVVA__dfa => 20;
  use constant versVVA__ddp => 21;
  use constant versVVA__dfp => 22;
  use constant versVVA__debvv => 23;
  use constant versVVA__dvalmedv => 24;
  use constant versVVA__dvalmedm => 25;
  use constant versVVA__hdbvv => 26;
  use constant versVVA__hcdbvv => 27;
  use constant versVVA__hdbmo => 28;
  use constant versVVA__hcdbmo => 29;
  use constant versVVA__nolicence => 30;
  use constant versVVA__dlicence => 31;
  use constant versVVA__accident => 32;
  use constant versVVA__telaccident => 33;
  use constant versVVA__solde => 34;
  use constant versVVA__creditrem => 35;
  use constant versVVA__cptcg => 36;
  use constant versVVA__convocat => 37;
  use constant versVVA__tpsec => 38;
  use constant versVVA__danvol => 39;

  my @colnames_versVVA = (
    'idcode',
    'langue',
    'sexe',
    'nom',
    'prenom',
    'datnais',
    'lieunais',
    'adresse1',
    'adresse2',
    'codepost',
    'ville',
    'mafe',
    'noconvt',
    'teldom',
    'telbur',
    'telfax',
    'telmob',
    'email',
    'dsousmemb',
    'dda',
    'dfa',
    'ddp',
    'dfp',
    'debvv',
    'dvalmedv',
    'dvalmedm',
    'hdbvv',
    'hcdbvv',
    'hdbmo',
    'hcdbmo',
    'nolicence',
    'dlicence',
    'accident',
    'telaccident',
    'solde',
    'creditrem',
    'cptcg',
    'convocat',
    'tpsec',
    'danvol',
  );

# +-------------------------------------------------------------------------+
# | [tMap_1 start ] ends here                  |
# +-------------------------------------------------------------------------+ 
# +-------------------------------------------------------------------------+
# | [tFileInputPositional_1 start ] starts here                |
# +-------------------------------------------------------------------------+ 

$current_component="tFileInputPositional_1";



=head1 tFileInputPositional tFileInputPositional_1

=cut

$_globals{tFileInputPositional_1}{OK} = false;


use FileHandle;
use List::Util qw/min/;
use talend::filesOp;

my %desc_tFileInputPositional_1 = (
    filename      => '/home/jmax/Projets/aapca/ficjmoins1/jmembres.txt',
    row_separator => "\n",
    header        => 0,
    footer        => 0,
    limit         => null,
    schema        => [
        {
            name    => 'nocode',
            key     => true,
            type    => '',
            len     => 4,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'langue',
            key     => false,
            type    => '',
            len     => 10,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'sexe',
            key     => false,
            type    => '',
            len     => 1,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'titre',
            key     => false,
            type    => '',
            len     => 12,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'nom',
            key     => false,
            type    => '',
            len     => 20,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'prenom',
            key     => false,
            type    => '',
            len     => 15,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'datenais',
            key     => false,
            type    => '',
            len     => 8,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'lieunais',
            key     => false,
            type    => '',
            len     => 20,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'adresse1',
            key     => false,
            type    => '',
            len     => 25,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'adresse2',
            key     => false,
            type    => '',
            len     => 25,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'codepost',
            key     => false,
            type    => '',
            len     => 8,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'ville',
            key     => false,
            type    => '',
            len     => 20,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'mafe',
            key     => false,
            type    => '',
            len     => 1,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'noconvt',
            key     => false,
            type    => '',
            len     => 3,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'plus25',
            key     => false,
            type    => '',
            len     => 4,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'pm',
            key     => false,
            type    => '',
            len     => 1,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'telephondom',
            key     => false,
            type    => '',
            len     => 15,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'telephonbureau',
            key     => false,
            type    => '',
            len     => 15,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'fax',
            key     => false,
            type    => '',
            len     => 15,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'sousmemb',
            key     => false,
            type    => '',
            len     => 8,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'dda',
            key     => false,
            type    => '',
            len     => 8,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'dfa',
            key     => false,
            type    => '',
            len     => 8,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'ddp',
            key     => false,
            type    => '',
            len     => 8,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'dfp',
            key     => false,
            type    => '',
            len     => 8,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'debvv',
            key     => false,
            type    => '',
            len     => 4,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'reducon',
            key     => false,
            type    => '',
            len     => 1,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'valvmed',
            key     => false,
            type    => '',
            len     => 8,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'valmmed',
            key     => false,
            type    => '',
            len     => 8,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'ddbvv',
            key     => false,
            type    => '',
            len     => 8,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'hdbvv',
            key     => false,
            type    => '',
            len     => 6,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'mdbvv',
            key     => false,
            type    => '',
            len     => 2,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'sdbvv',
            key     => false,
            type    => '',
            len     => 9,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'dslvv',
            key     => false,
            type    => '',
            len     => 8,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'hslvv',
            key     => false,
            type    => '',
            len     => 6,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'mslvv',
            key     => false,
            type    => '',
            len     => 2,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'sslvv',
            key     => false,
            type    => '',
            len     => 9,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'ddbmo',
            key     => false,
            type    => '',
            len     => 8,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'hdbmo',
            key     => false,
            type    => '',
            len     => 6,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'mdbmo',
            key     => false,
            type    => '',
            len     => 2,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'sdbmo',
            key     => false,
            type    => '',
            len     => 9,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'dslmo',
            key     => false,
            type    => '',
            len     => 8,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'hslmo',
            key     => false,
            type    => '',
            len     => 6,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'mslmo',
            key     => false,
            type    => '',
            len     => 2,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'sslmo',
            key     => false,
            type    => '',
            len     => 9,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'nolicenc',
            key     => false,
            type    => '',
            len     => 10,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'valicenc',
            key     => false,
            type    => '',
            len     => 8,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'accident',
            key     => false,
            type    => '',
            len     => 30,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'telaccident',
            key     => false,
            type    => '',
            len     => 15,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'solde',
            key     => false,
            type    => '',
            len     => 10,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'credirem',
            key     => false,
            type    => '',
            len     => 6,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'deroper',
            key     => false,
            type    => '',
            len     => 18,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'deredit',
            key     => false,
            type    => '',
            len     => 18,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'dopej',
            key     => false,
            type    => '',
            len     => 8,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'cptfour',
            key     => false,
            type    => '',
            len     => 6,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'convocat',
            key     => false,
            type    => '',
            len     => 1,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'mtdervt',
            key     => false,
            type    => '',
            len     => 9,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'datdervt',
            key     => false,
            type    => '',
            len     => 8,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'dintern',
            key     => false,
            type    => '',
            len     => 60,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'solde01',
            key     => false,
            type    => '',
            len     => 10,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'solde12',
            key     => false,
            type    => '',
            len     => 10,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'solde03',
            key     => false,
            type    => '',
            len     => 10,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'tpsec',
            key     => false,
            type    => '',
            len     => 8,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'anvols',
            key     => false,
            type    => '',
            len     => 4,
            null    => true,
            default => '',
            comment => '',
        },
    
        {
            name    => 'anomalie',
            key     => false,
            type    => '',
            len     => 1,
            null    => true,
            default => '',
            comment => '',
        },
    
    ]
);


my $pattern_tFileInputPositional_1 = join(
    ' ',
    map {'A'.$_} split(
        /,/,
        '4,10,1,12,20,17,*'
    )
);

$/ = $desc_tFileInputPositional_1{row_separator};


my $input_FH_tFileInputPositional_1 = new FileHandle;
open($input_FH_tFileInputPositional_1, '<', $desc_tFileInputPositional_1{filename})
    or die 'cannot open file "' . $desc_tFileInputPositional_1{filename} . '"';


$nb_line_tFileInputPositional_1 = 0;


while (my $_tFileInputPositional_1 = <$input_FH_tFileInputPositional_1>) {



    chomp $_tFileInputPositional_1;


    # increase number of line really splitted
    $nb_line_tFileInputPositional_1++;

    my @tFileInputPositional_1 = unpack(
        $pattern_tFileInputPositional_1,
        $_tFileInputPositional_1
    );


# +-------------------------------------------------------------------------+
# | [tFileInputPositional_1 start ] ends here                  |
# +-------------------------------------------------------------------------+ 
# +-------------------------------------------------------------------------+
# | [tFileInputPositional_1 main ] starts here                |
# +-------------------------------------------------------------------------+ 

$current_component="tFileInputPositional_1";




my @row1 = @tFileInputPositional_1;

# +-------------------------------------------------------------------------+
# | [tFileInputPositional_1 main ] ends here                  |
# +-------------------------------------------------------------------------+ 
# +-------------------------------------------------------------------------+
# | [tMap_1 main ] starts here                |
# +-------------------------------------------------------------------------+ 

$current_component="tMap_1";



  
  ###############################
  # Input tables 
  ###############################
  
  ###############################
  # Vars tables
  ###############################
  
  ###############################
  # Output table: 'versVVA'
  my @versVVA = ();
  $versVVA[versVVA__idcode] = $row1[row1__nocode];
  $versVVA[versVVA__langue] = $row1[row1__langue];
  $versVVA[versVVA__sexe] = $row1[row1__sexe];
  $versVVA[versVVA__nom] = $row1[row1__nom];
  $versVVA[versVVA__prenom] = $row1[row1__prenom];
  $versVVA[versVVA__lieunais] = $row1[row1__lieunais];
  $versVVA[versVVA__adresse1] = $row1[row1__adresse1];
  $versVVA[versVVA__adresse2] = $row1[row1__adresse2];
  $versVVA[versVVA__codepost] = $row1[row1__codepost];
  $versVVA[versVVA__ville] = $row1[row1__ville];
  ###############################
    
# +-------------------------------------------------------------------------+
# | [tMap_1 main ] ends here                  |
# +-------------------------------------------------------------------------+ 
# +-------------------------------------------------------------------------+
# | [tDBOutput_2 main ] starts here                |
# +-------------------------------------------------------------------------+ 

$current_component="tDBOutput_2";


    my @tDBOutput_2 = @versVVA;


push(
    @lines_tDBOutput_2,
    [ @tDBOutput_2[0 .. $nb_fields_tDBOutput_2 - 1] ]
);

my $nb_lines_current = scalar @lines_tDBOutput_2;

if ($nb_lines_current >= $desc_tDBOutput_2{packet_size}) {
    my @values = ();

    foreach my $line_aref (@lines_tDBOutput_2) {
        push @values, @$line_aref;
    }

    $sth_tDBOutput_2->execute(@values)
        or die "can't execute insert query\n";


    $nb_line_tDBOutput_2 += $nb_lines_current;
    @lines_tDBOutput_2 = ();
}


# +-------------------------------------------------------------------------+
# | [tDBOutput_2 main ] ends here                  |
# +-------------------------------------------------------------------------+ 
# +-------------------------------------------------------------------------+
# | [                                                                       |
# +-------------------------------------------------------------------------+ 

# +-------------------------------------------------------------------------+
# | [tFileInputPositional_1 end ] starts here                |
# +-------------------------------------------------------------------------+ 

$current_component="tFileInputPositional_1";




}

close($input_FH_tFileInputPositional_1);


$_globals{tFileInputPositional_1}{NB_LINE} = $nb_line_tFileInputPositional_1;



$_globals{tFileInputPositional_1}{OK} = true;

# +-------------------------------------------------------------------------+
# | [tFileInputPositional_1 end ] ends here                  |
# +-------------------------------------------------------------------------+ 
# +-------------------------------------------------------------------------+
# | [tMap_1 end ] starts here                |
# +-------------------------------------------------------------------------+ 

$current_component="tMap_1";




$_globals{tMap_1}{OK} = true;

# +-------------------------------------------------------------------------+
# | [tMap_1 end ] ends here                  |
# +-------------------------------------------------------------------------+ 
# +-------------------------------------------------------------------------+
# | [tDBOutput_2 end ] starts here                |
# +-------------------------------------------------------------------------+ 

$current_component="tDBOutput_2";




# TODO: insert last lines (< packet_size)
my $nb_lines_remaining = scalar @lines_tDBOutput_2;

if ($nb_lines_remaining > 0) {
    $query = $query_start_tDBOutput_2.'
  '.$question_marks_tDBOutput_2.",$question_marks_tDBOutput_2" x ($nb_lines_remaining - 1).'
';

    $sth_tDBOutput_2 = $dbh_tDBOutput_2->prepare(
        $query
    );

    my @values = ();

    foreach my $line_aref (@lines_tDBOutput_2) {
        push @values, @$line_aref;
    }

    $sth_tDBOutput_2->execute(@values)
        or die "can't execute insert query\n";

    $nb_line_tDBOutput_2 += $nb_lines_remaining;
}

$dbh_tDBOutput_2->disconnect();
$_globals{tDBOutput_2}{NB_LINE} = $nb_line_tDBOutput_2;



$_globals{tDBOutput_2}{OK} = true;

# +-------------------------------------------------------------------------+
# | [tDBOutput_2 end ] ends here                  |
# +-------------------------------------------------------------------------+ 
# +-------------------------------------------------------------------------+
# | [subprocess footer] starts here                                         |
# +-------------------------------------------------------------------------+ 
    }
# +-------------------------------------------------------------------------+
# | [subprocess footer] stops here                                          |
# +-------------------------------------------------------------------------+ 

# +-------------------------------------------------------------------------+
# | [footer] starts here                                                    |
# +-------------------------------------------------------------------------+ 



tFileInputPositional_1_subprocess();


# +-------------------------------------------------------------------------+
# | [footer] stops here                                                     |
# +-------------------------------------------------------------------------+ 
# +-------------------------------------------------------------------------+
#      45965 characters generated by Talend OpenStudio 
#      on the 23 octobre 2006 10:45:05 CEST
# +-------------------------------------------------------------------------+

Offline

#4 2006-10-23 11:06:15

plegall
Member
Registered: 2006-09-19
Posts: 1586
Website

Re: Does it exist a way to see whatexactly is being passed to database ?

Warning, it's short!

In your tDBOutput, the table name is empty.

Offline

#5 2006-10-23 13:50:24

jmreymond
Member
Registered: 2006-09-20
Posts: 52

Re: Does it exist a way to see whatexactly is being passed to database ?

ok, it is better but a warning message is good too !

Offline

#6 2006-10-23 14:53:49

plegall
Member
Registered: 2006-09-19
Posts: 1586
Website

Re: Does it exist a way to see whatexactly is being passed to database ?

jmreymond wrote:

ok, it is better but a warning message is good too !

With MySQL and Oracle, the error message would have been (much) more verbose. I'll try to find a way to show a better warning message.

Offline

  • Index
  •  » Talend Open Studio for Data Integration » Installation
  •  » Does it exist a way to see whatexactly is being passed to database ?

Board footer

Powered by FluxBB