NAME

Quiq::Sql::Script::Reader - Leser von SQL-Skripten

BASE CLASS

Quiq::Hash

SYNOPSIS

    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;

DESCRIPTION

Die Klasse implementiert einen Leser von SQL-Skripten. Ein SQL-Skript ist eine Folge von SQL-Statements, die mit Semikolon am Ende einer Zeile voneinander abgegrenzt 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.

CAVEATS

Mehrere SQL-Statements auf einer Zeile beherrscht die Klasse nicht.

METHODS

Klassenmethoden

new() - Konstruktor

Synopsis

    $rd = $class->new($dbms,$file);
    $rd = $class->new($dbms,\$str);

Arguments

$dbms

Name des DBMS, das die SQL-Statements des Skripts ausführen kann.

$file

Dateipfad des SQL-Skripts. Im Falle von '-' wird von STDIN gelesen.

$str

Das SQL-Skript als Zeichenkette.

Returns

Reader-Objekt

Description

Instantiiere ein Reader-Objekt für DBMS $dbms und Datei $file bzw. Zeichenkette $str und liefere eine Referenz auf dieses Objekt zurück.

Objektmethoden

close() - Beende Nutzung des Readers

Synopsis

    $rd->close;

Description

Beende die die Nutzung des Reader-Objekts. Nach Aufruf der Methode kann der Reader nicht mehr genutzt werden.

nextStmt() - Nächstes Statement

Synopsis

    $stmt = $rd->nextStmt;

Returns

SQL-Statemt (String)

Description

Liefere das nächste SQL-Statement des Skripts. Leere Statements werden übergangen. Ist das Ende erreicht, liefere undef.

VERSION

1.155

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2019 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.