Quiq::Sql::Script::Reader - Leser von SQL-Skripten
Quiq::Hash
use Quiq::Sql::Script::Reader; my $rd = Quiq::Sql::Script::Reader->new($dbms,$file); while (my $stmt = $rd->nextStmt) { # irgendwas mit dem SQL-Statement machen } $rd->close;
Die Klasse implementiert einen Leser von SQL-Skripten. Ein SQL-Skript ist eine Folge von SQL-Statements, die mit Semikolon am Ende einer Zeile (also vor einem Newline) voneinander getrennt sind. Eine Instanz der Klasse liefert nacheinander die einzelnen Statements, die ausgeführt oder anderweitig verarbeitet werden können. Da das Skript sukzessive gelesen wird, können auch sehr große SQL-Skripte, z.B. von Datenbank-Dumps, durch die Klasse verarbeitet werden.
Leerzeilen am Anfang eines Statements werden entfernt, außerdem das abschließende Semikolon und darauffolgender Whitespace bis zum Zeilenende.
Mehrere SQL-Statements auf einer Zeile beherrscht die Klasse nicht.
$rd = $class->new($dbms,$file,@opt); $rd = $class->new($dbms,\$str,@opt);
Name des DBMS, das die SQL-Statements des Skripts ausführen kann.
Dateipfad des SQL-Skripts. Im Falle von '-' wird von STDIN gelesen.
Das SQL-Skript als Zeichenkette.
Statement-Separator. Per Default ein Semikolon (;) am Zeilenende. Andere Variante (geeigneter, wenn Prozeduren vorkommen können), Semikolon allein auf Zeile: qr/^;\s*$/.
Reader-Objekt
Instantiiere ein Reader-Objekt für DBMS $dbms und Datei $file bzw. Zeichenkette $str und liefere eine Referenz auf dieses Objekt zurück.
$rd->close;
Beende die die Nutzung des Reader-Objekts. Nach Aufruf der Methode kann der Reader nicht mehr genutzt werden.
$stmt = $rd->nextStmt;
SQL-Statemt (String)
Liefere das nächste SQL-Statement des Skripts. Leere Statements werden übergangen. Ist das Ende erreicht, liefere undef.
undef
1.186
Frank Seitz, http://fseitz.de/
Copyright (C) 2020 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Quiq, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Quiq
CPAN shell
perl -MCPAN -e shell install Quiq
For more information on module installation, please visit the detailed CPAN module installation guide.