Tools zum automatischen Verarbeitung und Formatieren von PL/SQL-Code
create Anweisung. Das Ergebnis der Verarbeitung von Multi-Objekt-Dateien ist unvorhersehbar, sodass alle Tools (außer Str_Decoder ) eine Ausnahme anstellen. Die einzige Funktion Decodod_to_str versucht, die Zeilencodierung zu erkennen und auf UTF-8 neu zu codieren. Erhöht ValueError , wenn die Codierung unmöglich ist.
decode_to_str(line, probables=None)
line - bytes -Objekt mit einem zu dekodierenden Textprobables - list der str mit primären Codierungen, die sie überprüfen sollten. Standard: ['cp866', 'cp1251', 'koi8-r']str (decodiert und wieder auf UTF-8 ) Entschlüsseln Sie die ganze Datei in eine andere Datei. Führen Sie dies aus, um eine Liste der Argumente zu erhalten:
python -m oc_sql_helpers.str_decoder --help
PLSQLWrapper -Klasse ist ein Werkzeug für die Arbeit mit Oracle-umgepackten Quellen.
Es gibt zusätzliche Anforderungen, um Dateien zu wickeln . Beachten Sie, dass Ausweichmethoden ohne sie funktionieren. Diese sind auf die Verwendung des ursprünglichen wrap -Dienstprogramms von Oracle zurückzuführen , das aufgrund von Lizenzverletzungen nicht in diesem Paket enthalten ist . Sie müssen es separat installieren.
ORACLE_HOME -Umgebungsvariable ist korrekt festzulegenwrap Binary soll unter ${ORACLE_HOME}/bin platziert werden und muss die Erlaubnis für einen effektiven Benutzer ausführen . PLSQLWrapper() - Ein Objekt für diese Klasse instanziieren
Methoden
wrap_path(path_in, write_to=None)path_in - str -Objekt mit absolutem oder relativem Pfad zu Datei zu Wickeln.write_to - einer von:None - Das Verpackungsergebnis wird nach dieser Methode als bytes -Objekt zurückgegebenfile - Ergebnis wird in das hier angegebene Datei -ähnliche Objekt geschrieben. Muss im Binärmodus von Read-Write ( 'w+b' ) geöffnet werden und unterstützen seek .str - Pfad zum Ausgabedatei, absolut oder relativ. Das Ergebnis wird dort geschrieben. Muss eine Erweiterung haben - dies ist Oracle wrap Utility Featrue. Es findet .plb Suffix für sich selbst an, wenn eine Erweiterung weggelassen wird. Bitte geben Sie die Erweiterung immer anwrite_to obenwrap_buf(fl_in, write_to=None)fl_in - file oder file-like Objekt zum Wickeln von Daten aus. Muss im Binärmodus geöffnet werden und Support seek Operation ( 'rb' ).write_to - das gleiche wie für wrap_pathwrap_pathunwrap_path(path_in, write_to=None)path_in - str -Objekt mit absolutem oder relativem Pfad zur Datei zum Ausschalten.write_to - einer von:None - Das Entpackungsergebnis wird nach dieser Methode als bytes -Objekt zurückgegebenfile - Ergebnis wird in das hier angegebene Datei -ähnliche Objekt geschrieben. Muss im Binärmodus von Read-Write ( 'w+b' ) geöffnet werden und unterstützen seek .str - Pfad zum Ausgabedatei, absolut oder relativ. Das Ergebnis wird dort geschrieben.write_to obenunwrap_buf(fl_in, write_to=None)fl_in - file oder file-like Objekt zum Wickeln von Daten aus. Muss im Binärmodus geöffnet werden und Support seek Operation ( 'rb' ).write_to - das gleiche wie für unwrap_pathunwrap_path Wickeln/Auspacken Sie die ganze Datei in eine andere Datei. Führen Sie dies aus, um eine Liste der Argumente zu erhalten:
python -m oc_sql_helpers.wrapper --help
PLSQLNormalizer -Klasse ist oder PL/SQL -Codenormalisierung .
Normalisierung bedeutet fast dasselbe wie der Codestil , aber weniger streng. Dies bedeutet, dass das Normalisierungsergebnis auch dann unbrauchbar sein kann, wenn die Quelle aus PL/SQL -Sicht korrekt ist.
Standardnormalisierung ist:
CREATE wird entfernt.CREATE Anweisungen selbst wird in die erste Reihe von AS (oder IS oder WRAPPED ) Token, einschließlich Objektnamen, Typ und Schema, angeordnet. Zusätzliche Space -Zeichen und Kommentare werden durch einen einzelnen Raum ersetzt.CREATE erstellte) ist aufgeführt , einschließlich Schema und Objektname ." "another.schema"."another.name" werden diese Doppelquoten nach Möglichkeit SCHEMA.NAME . Beispiel: "schema"."name" "ANOTHER.SCHEMA"."ANOTHER.NAME"Ein weiterer Normalisierungsflaggen :
uppercase : Alle Sprachlexeme im Objektkörper werden außer Literalen oberen Zahlen seinno-comments : Alle Kommentare im Körper, einschließlich der Kommentarszeichen selbst, werden durch einen Raum ersetzt.no-spaces : Alle sich wiederholenden Raumschiffe (Raum selbst, Newline, Tabellierung ...) werden durch allgemeine Einzelraum ersetzt. Beispiel: var := 'the value' wird in var := 'the value' . Beachten Sie, dass in einem wörtlichen 'the value' kein Ersatz erfolgt. no-comments Flagno-literals : Alle Saiten-Literalwerte werden auf leere ersetzt. Die wörtlichen Zeichen selbst werden nicht geändert.comments-only : Verwerfen Sie den gesamten Dateiinhalt, aber Kommentare, einschließlich der Kommentare selbst. Jeder Kommentar wird mit einer neuen Zeile gestartet. Diese Flagge ist mit niemandem oben kompatibel PLSQLNormalizer() - ein Objekt für diese Klasse instanziieren
Methoden
normalize_path(path, flags=None, lines=None, write_to=None)path - str -Objekt mit absolutem oder relativem Pfad zur Normalisierung.flags - Normalisierungsflags, list der Ganzzahlen aus der Aufzählung PLSQLNormalizationFlags , siehe unten. None Wert bedeutet nur eine Standardnormalisierung (Definition CREATE ).lines - int , Grenznormalisierungslinien (aus der Quelle gezählt). Standard : None , bedeutet, die ganze Quelle zu normalisierenwrite_to - einer von:None - Das Verpackungsergebnis wird nach dieser Methode als bytes -Objekt zurückgegebenfile - Ergebnis wird in das hier angegebene Datei -ähnliche Objekt geschrieben. Muss im Binärmodus von Read-Write ( 'w+b' ) geöffnet werden und unterstützen seek .str - Pfad zum Ausgabedatei, absolut oder relativ. Das Ergebnis wird dort geschrieben. Muss eine Erweiterung haben - dies ist Oracle wrap Utility Featrue. Es findet .plb Suffix für sich selbst an, wenn eine Erweiterung weggelassen wird. Bitte geben Sie die Erweiterung immer anwrite_to obennormalize(fl, flags, lines=None write_to=None)fl - einer von:file oder file-like Objekt zum Normalisieren von Daten von. Muss im Binärmodus geöffnet werden und Support seek Operation ( 'rb' ).str - String -Daten zur Normalisierungbytes - "binäre" Daten zur Normalisierungflags - genauso wie für normalize_pathlines - die gleiche wie für normalize_pathwrite_to - das gleiche wie für normalize_pathnormalize_pathis_sql(fl) - Überprüfen Sie, ob die angegebenen Daten unterstützt werdenfl - Das gleiche wie bei normalizebool , PL/SQL CODE oder nichtis_sql_path(path) - Das Gleiche wie is_sql , aber Argument wird als Pfad zu einer Datei mit einem möglichen Code behandeltis_wrapped(fl) - Überprüfen Sie, ob die angegebenen Daten unterstützt werden. PL/SQL -Code wird unterstütztfl - Das gleiche wie bei normalizebool , unterstützter PL/SQL -Code oder nichtis_wrapped_path(path) - Das gleiche wie is_wrapped , aber Argument wird als Pfad zu einer Datei mit einem möglichen Code behandeltis_wrappable(fl) - Überprüfen Sie, ob die angegebenen Daten unterstützt werden. PL/SQL -Code wird unterstütztfl - Das gleiche wie bei normalizebool , Wrappable PL/SQL -Objekt im Code oder nichtis_wrappable_path(path) - Das gleiche wie is_wrappable , aber das Argument wird als Pfad zu einer Datei mit einem möglichen Code behandelt PLSQLNormalizationFlags - Aufzählung von Flags:
uppercaseno_commentsno_spacesno_literalscomments_onlySiehe detaillierte Beschreibung oben in einem anderen Normalisierungsflags Kapitel aus dem Abschnitt Normalisierungsbegriff .
Normalisierung der gesamten Datei in einer anderen Datei. Führen Sie dies aus, um eine Liste der Argumente zu erhalten:
python -m oc_sql_helpers.normalizer --help