Outils pour le traitement automatique et la mise en forme du code PL / SQL
create . Le résultat du traitement des fichiers multi-objets est imprévisible, donc tous les outils (sauf STR_DECODER ) augmenteront une exception. La seule fonction decode_to_str essaie de détecter le codage des lignes et de le redécorer à UTF-8 . Soulève ValueError si le codage est impossible.
decode_to_str(line, probables=None)
line - objet bytes avec un texte à décoderprobables - list de str avec des encodages principaux à vérifier. Par défaut: ['cp866', 'cp1251', 'koi8-r']str (décodé et réencodé vers UTF-8 ) Décodage du fichier entier dans un autre fichier. Exécutez ceci pour obtenir la liste des arguments:
python -m oc_sql_helpers.str_decoder --help
La classe PLSQLWrapper est un outil pour travailler avec des sources enveloppées d'Oracle.
Il existe des exigences supplémentaires pour envelopper des fichiers. Notez que les méthodes de déballage fonctionnent sans elle. Ceux-ci sont dus à l'utilisation de l'utilitaire wrap d'origine d' Oracle qui n'est pas inclus à ce package en raison de la violation de la licence . Vous devez l'installer séparément.
ORACLE_HOME doit être définie correctementwrap le binaire doit être placé sous ${ORACLE_HOME}/bin et doit avoir une autorisation d'exécution pour un utilisateur efficace PLSQLWrapper() - pour instancier un objet pour cette classe
Méthodes
wrap_path(path_in, write_to=None)path_in - str Objet avec un chemin absolu ou relatif à un fichier à envelopper.write_to - un de:None - le résultat d'enveloppe sera renvoyé par cette méthode comme objet bytesfile - Le résultat sera écrit dans l'objet de type fichier spécifié ici. Doit être ouvert en mode binaire en lecture ( 'w+b' ) et en fonctionnement seek .str - chemin vers le fichier de sortie, absolu ou relatif. Le résultat y sera écrit. Doit avoir une extension - il s'agit de featre de l'utilitaire d'Oracle wrap . Il ajoute le suffixe .plb seul si une extension a omis. Veuillez spécifier toujours l'extensionwrite_to ci-dessuswrap_buf(fl_in, write_to=None)fl_in - file ou un objet file-like pour envelopper les données. Doit être ouvert en mode binaire et en fonctionnement seek ( 'rb' ).write_to - la même chose que pour wrap_pathwrap_pathunwrap_path(path_in, write_to=None)path_in - str Objet avec un chemin absolu ou relatif pour le fichier pour se dérouler.write_to - un de:None - le résultat de déballage sera renvoyé par cette méthode comme objet bytesfile - Le résultat sera écrit dans l'objet de type fichier spécifié ici. Doit être ouvert en mode binaire en lecture ( 'w+b' ) et en fonctionnement seek .str - chemin vers le fichier de sortie, absolu ou relatif. Le résultat y sera écrit.write_to ci-dessusunwrap_buf(fl_in, write_to=None)fl_in - file ou un objet file-like pour envelopper les données. Doit être ouvert en mode binaire et en fonctionnement seek ( 'rb' ).write_to - la même chose que pour unwrap_pathunwrap_path Emballage / déballage entier du fichier dans un autre fichier. Exécutez ceci pour obtenir la liste des arguments:
python -m oc_sql_helpers.wrapper --help
La classe PLSQLNormalizer est une normalisation de code PL / SQL.
La normalisation signifie presque la même chose que le style de code , mais moins strictement. Cela signifie que le résultat de normalisation peut être inutilisable même si la source est correcte du point de vue PL / SQL .
La normalisation par défaut est:
CREATE non commissionnés sont supprimés.CREATE de l'instruction elle-même est commandée dans la première ligne jusqu'à AS token (ou IS ou WRAPPED ), y compris le nom d'objet, le type et le schéma. Les caractères d'espace supplémentaires et les commentaires sont remplacés par un seul espace.CREATE ordonnée) est upprlasée , y compris le schéma et le nom de l'objet ." , alors ces doubles quotes seront supprimés si possible. Exemple: "schema"."name" sera SCHEMA.NAME après normalisation, tandis que "another.schema"."another.name" aura les citations de Doble: "ANOTHER.SCHEMA"."ANOTHER.NAME"Un autre indicateur de normalisation :
uppercase : tous les lexèmes de langue dans le corps d'objet seront upperés sauf les littérauxno-comments : Tous les commentaires à l'intérieur du corps, y compris les signes de commentaires eux-mêmes, seront remplacés par un seul espace.no-spaces : tous les caracles d'espace répétitifs (espace lui-même, newline, tabulation ...) seront remplacés par un seul espace général. Exemple: var := 'the value' sera traduite par var := 'the value' . Notez qu'aucun remplacement n'est effectué à l'intérieur d'une 'the value' littérale. Ce drapeau peut ne pas être utilisé avec no-commentsno-literals : Toutes les valeurs littérales de chaîne seront remplacées à celles vides. Les signes littéraux eux-mêmes ne sont pas modifiés.comments-only : Jetez l'ensemble du contenu du fichier mais les commentaires, y compris les signes de commentaires eux-mêmes. Chaque commentaire sera démarré avec une nouvelle ligne. Ce drapeau n'est pas compatible avec quiconque ci-dessus PLSQLNormalizer() - pour instancier un objet pour cette classe
Méthodes
normalize_path(path, flags=None, lines=None, write_to=None)path - str objet avec un chemin absolu ou relatif pour le fichier pour normaliser.flags - Flags de normalisation, list des entiers de l'énumération PLSQLNormalizationFlags , voir ci-dessous. None valeur ne signifie que faire par défaut ( CREATE la définition) la normalisation uniquement.lines - int , limite les lignes de normalisation (comptées à partir de la source ). Par défaut : None , signifie normaliser la source entièrewrite_to - un de:None - le résultat d'enveloppe sera renvoyé par cette méthode comme objet bytesfile - Le résultat sera écrit dans l'objet de type fichier spécifié ici. Doit être ouvert en mode binaire en lecture ( 'w+b' ) et en fonctionnement seek .str - chemin vers le fichier de sortie, absolu ou relatif. Le résultat y sera écrit. Doit avoir une extension - il s'agit de featre de l'utilitaire d'Oracle wrap . Il ajoute le suffixe .plb seul si une extension a omis. Veuillez spécifier toujours l'extensionwrite_to ci-dessusnormalize(fl, flags, lines=None write_to=None)fl - Un de:file ou objet file-like pour normaliser les données de. Doit être ouvert en mode binaire et en fonctionnement seek ( 'rb' ).str - Données de chaîne pour normaliserbytes - données "binaires" pour normaliserflags - comme pour normalize_pathlines - la même chose que pour normalize_pathwrite_to - comme pour normalize_pathnormalize_pathis_sql(fl) - Vérifiez que les données fournies sont prises en charge du code PL / SQLfl - comme pour normalizebool , code PL / SQL enveloppé ou nonis_sql_path(path) - La même chose que is_sql mais l'argument est traité comme un chemin vers un fichier avec un code possibleis_wrapped(fl) - Vérifiez que les données fournies sont prises en charge du code PL / SQL enveloppéfl - comme pour normalizebool , code PL / SQL pris en charge ou nonis_wrapped_path(path) - La même chose que is_wrapped , mais l'argument est traité comme un chemin vers un fichier avec un code possibleis_wrappable(fl) - Vérifiez que les données fournies sont prises en charge du code PL / SQL enveloppéfl - comme pour normalizebool , objet PL / SQL wrappable dans le code ou nonis_wrappable_path(path) - la même chose que is_wrappable mais l'argument est traité comme un chemin vers un fichier avec un code possible PLSQLNormalizationFlags - Énumération des drapeaux:
uppercaseno_commentsno_spacesno_literalscomments_onlyVoir Description détaillée ci-dessus dans un autre chapitre des drapeaux de normalisation de la section du terme de normalisation .
Normaliser le fichier entier dans un autre fichier. Exécutez ceci pour obtenir la liste des arguments:
python -m oc_sql_helpers.normalizer --help