UTF8, Null and docs:
* For Postgres, set UTF-8 flag * Print null values as "NULL" * Improved POD.
This commit is contained in:
parent
7083ad9026
commit
243c54a8ef
33
dbi/dumpsql
33
dbi/dumpsql
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/local/bin/perl
|
#!/usr/bin/perl
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
|
@ -7,12 +7,35 @@ dumpsql - dump output of an SQL query
|
||||||
=head1 SYNOPSIS
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
dumpsql
|
dumpsql
|
||||||
|
[ --vertical
|
||||||
|
[ --escape ]
|
||||||
|
|
|
||||||
|
--xhtml
|
||||||
|
[ --style uri ]
|
||||||
|
]
|
||||||
query
|
query
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
Connects to the database identified by the environment variable
|
Connects to the database identified by the environment variable
|
||||||
DBI_CREDENTIAL_FILE, executes the query given on the command line and
|
DBI_CREDENTIAL_FILE, executes the query given on the command line and
|
||||||
prints the output to stdout.
|
prints the output to stdout.
|
||||||
|
|
||||||
|
By default the output is tab-separated. Two alternate formats are
|
||||||
|
available:
|
||||||
|
|
||||||
|
--vertical prints each field in a separate line in "Columnname: Value"
|
||||||
|
format. Rows are separated by empty lines. --Escape escapes unprintable
|
||||||
|
characters.
|
||||||
|
|
||||||
|
--xhtml prints the table as an XHTML file. Optionally a style sheet can
|
||||||
|
be specified with --style.
|
||||||
|
|
||||||
|
=head1 BUGS
|
||||||
|
|
||||||
|
The --escape option only works with --vertical. It should also work with
|
||||||
|
the other two styles.
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
use warnings;
|
use warnings;
|
||||||
|
@ -21,6 +44,7 @@ use DBI;
|
||||||
use Getopt::Long;
|
use Getopt::Long;
|
||||||
use Encode qw(:fallbacks encode);
|
use Encode qw(:fallbacks encode);
|
||||||
use I18N::Langinfo qw(langinfo CODESET);
|
use I18N::Langinfo qw(langinfo CODESET);
|
||||||
|
use Pod::Usage;
|
||||||
|
|
||||||
my $charset = langinfo(CODESET);
|
my $charset = langinfo(CODESET);
|
||||||
binmode STDOUT, "encoding($charset)";
|
binmode STDOUT, "encoding($charset)";
|
||||||
|
@ -65,6 +89,11 @@ sub dbiconnect {
|
||||||
}
|
}
|
||||||
|
|
||||||
$dbh = DBI->connect(_read_cred($cred_file), {RaiseError => 1, AutoCommit => 0});
|
$dbh = DBI->connect(_read_cred($cred_file), {RaiseError => 1, AutoCommit => 0});
|
||||||
|
|
||||||
|
my $driver = $dbh->{Driver}->{Name};
|
||||||
|
if ($driver eq 'Pg') {
|
||||||
|
$dbh->{pg_enable_utf8} = 1;
|
||||||
|
}
|
||||||
return $dbh;
|
return $dbh;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,7 +158,7 @@ if ($xhtml) {
|
||||||
print "NULL\n";
|
print "NULL\n";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print "$a[$i]\n";
|
print $a[$i] // "NULL", "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print "\n";
|
print "\n";
|
||||||
|
|
Loading…
Reference in New Issue