DBIx-BulkUtil
view release on metacpan or search on metacpan
lib/DBIx/BulkUtil.pm view on Meta::CPAN
return "$file.bak";
}
sub add_quotes {
my ($self, $table, $file, $cols, $opts) = @_;
my $d = $opts->{Delimiter} || $self->{DELIMITER};
my $dre = quotemeta($d);
local ($_, $., $ARGV, *ARGV);
local ( $^I, @ARGV ) = ( '.bak', $file );
local $/ = $opts->{RowDelimiter} || "\n";
my $done;
while ( <> ) {
print join($d, @$cols), $/ if !$done++ && $opts->{Header};
if ($opts->{QuoteFields}) {
chomp;
my @fields = split /$dre/;
/\s/ and $_ = qq("$_") for @fields;
$_ = join($d, @fields) . $/;
lib/DBIx/BulkUtil.pm view on Meta::CPAN
sub fix_bcp_file {
my ( $self, $file ) = @_;
my $opts = {};
if (ref $_[-1]) {
$opts = pop @_;
}
my $delimiter = $opts->{Delimiter} || $self->{DELIMITER} || '|';
my $dre = quotemeta($delimiter);
local ($_, $., $ARGV, *ARGV);
local ( $^I, @ARGV ) = ( '.bak', $file );
local $/ = $opts->{RowDelimiter} || $/;
while ( <> ) {
1 while s!(^|$dre)($mon_re)\s{1,2}(\d{1,2})\s(\d{4})\s\s?(\d\d?):(\d\d):(\d\d):(\d{3})([AP])M($dre|$/)!
$1 .
sprintf( '%04d-%02d-%02d %02d:%02d:%02d.%03d',
$4,
$mons{ $2 },
$3,
( $9 eq 'P' && $5 < 12) ? $5 + 12 : ( $9 eq 'A' && $5 == 12 ) ? 0 : $5,
$6,
lib/DBIx/BulkUtil.pm view on Meta::CPAN
$opts ||= {};
my $sample_rows = $opts->{DateSampleRows} || 1000;
my $d = $opts->{Delimiter} || $self->{DELIMITER};
my $rd = $opts->{RowDelimiter};
my $year_mask = $opts->{Year2Mask} || 'YY';
local ($., $_, $ARGV, *ARGV);
local $/ = $rd if $rd;
local @ARGV = @$files;
my $row_cnt;
my (%remaining, %got);
$remaining{$_}++ for keys %$is_date;
my %fmt;
my $dc_fmt = $opts->{DateColumnFmt} || {};
for my $col ( keys %$dc_fmt ) {
my $c = uc($col);
$fmt{$c} = $dc_fmt->{$col};
( run in 1.043 second using v1.01-cache-2.11-cpan-49f99fa48dc )