dump_insert.xslt
Perl-Skript zum Einfügen von Daten aus Datenbank-Dump
2020-12-06
Herbert
Schiemann
h.schiemann@herbaer.de
Erzeugt aus den Angaben zur Datenbank-Struktur in einer Datenbank-Dump-Datei
ein Perl-Skript, das die Datenbank-Inhalte aus der (einer) Dump-Datei
in eine Datenbank (gleicher Struktur) einfügt.
Erstellungszeit
Name der Datenbank
Wurzelelement: Skript ausgeben
#!/usr/bin/perl -w
# file KLEIDER/catalog/dbdump/
_insert.pl generated
use Cwd qw(realpath);
use Herbaer::DataInserter ;
use Herbaer::MysqlAccess ;
use Herbaer::Readargs;
use MIME::Base64;
use utf8;
binmode (STDIN, ":encoding(utf-8)");
binmode (STDOUT, ":encoding(utf-8)");
binmode (STDERR, ":encoding(utf-8)");
my $args = {
"[cnt]verbose" => 1,
"dbkey" => undef,
"dumpfile" => undef,
};
sub version {
print <<'VERSION' ;
Daten aus einer Dump-XML-Datei in eine Datenbank einfügen
automatisch erstellt durch dump_insert.xslt
VERSION
}
$args -> {"[sr]version"} = sub { version (); exit 0; };
$args -> {"[sr]help"} = sub {
version ();
print_message_with_values (<<"HELP", $args);
$0 OPTION...
--[no_]verbose Umfang der Ausgabe \${[cnt]verbose}
--dbkey DBKEY Schlüssel zum Datenbankzugang \${dbkey}
--dumpfile DUMPFILE Pfad der Dump-Datei
\${dumpfile}
HELP
exit 0;
};
read_args ($args);
if (!$args -> {"dumpfile"} || !$args -> {"dbkey"}) {
$args -> {"[sr]help"} -> ($args);
exit 1;
}
my $dbh = get_database ($args -> {"dbkey"});
exit unless $dbh;
$dbh = $dbh -> [0];
sub dec_blob {
my $v = shift;
$v ? decode_base64 ($v) : $v;
}
sub insert {
my ($t, $v) = @_;
}
Herbaer::DataInserter
-> new ("http://herbaer.de/xmlns/20201201/dbcontents/
", \&insert, $args -> {"[cnt]verbose"})
-> parse_file ($args -> {"dumpfile"});
# end of file KLEIDER/catalog/dbdump/
_insert.pl generated_
Statement-Handle für eine Tabelle
my $st_
= $dbh -> prepare (
"INSERT INTO
(
) VALUES (
)"
);
Liste der Feldnamen
,
Platzhalter für Werte
?
,
Datenzeile einfügen
els
if ($t eq "
") {
$st_
-> execute (
);
}
dec_blob ($v -> {"
"})
$v -> {"
"}
,