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 -> {" "} ,