#!/usr/bin/perl use strict; use warnings; use DBI; my $db = DBI->connect("dbi:SQLite:dbname=junk.db","","", { PrintError => 0, RaiseError => 0, }); $db->do(<do(<errstr; CREATE TABLE content ( one VARCHAR2(10) NOT NULL, two VARCHAR2(10) NOT NULL, three VARCHAR2(10) NOT NULL, four VARCHAR2(10) NOT NULL, CONSTRAINT pk PRIMARY KEY (one) ) EOSQL my @data = (['a' .. 'd'], ['e' .. 'h'], ['i' .. 'l'], ['m' .. 'p'], ); my $query = $db->prepare(<execute_array( { ArrayTupleStatus => \my @tuple_status }, @data, ); print $query->errstr if defined $query->errstr; if ($tuples) { print "Successfully inserted $tuples records\n"; } else { for my $tuple (0 .. @tuple_status-1) { my $status = $tuple_status[$tuple]; $status = [0, "Skipped"] unless defined $status; next unless ref $status; printf "Failed to insert (%s, %s): %s\n", $data[0][$tuple], $data[1][$tuple], $data[2][$tuple], $data[3][$tuple], $status->[1]; } }