Herramientas para procesamiento automático y formateo del código PL/SQL
create . El resultado del procesamiento de archivos de múltiples objetos es impredecible, por lo que todas las herramientas (excepto STR_DECODER ) aumentarán una excepción. La única función decode_to_str intenta detectar la codificación de línea y volver a codificarla a UTF-8 . Eleva ValueError si la codificación es imposible.
decode_to_str(line, probables=None)
line - bytes objeto con un texto para decodificarprobables : list de str con codificaciones primarias para verificar. Valor predeterminado: ['cp866', 'cp1251', 'koi8-r']str (decodificado y reencoderado a UTF-8 ) Decodificar todo el archivo a otro archivo. Ejecute esto para obtener una lista de argumentos:
python -m oc_sql_helpers.str_decoder --help
La clase PLSQLWrapper es una herramienta para trabajar con fuentes envueltas en Oracle.
Hay requisitos adicionales para envolver archivos. Tenga en cuenta que los métodos de Unwrap funcionan sin él. Estos se deben al uso de la utilidad wrap original de Oracle que no se incluye en este paquete debido a la violación de la licencia . Tienes que instalarlo por separado.
ORACLE_HOME se debe configurar correctamentewrap Binary debe colocarse bajo ${ORACLE_HOME}/bin y debe tener un permiso de ejecución para un usuario efectivo PLSQLWrapper() - para instanciar un objeto para esa clase
Métodos
wrap_path(path_in, write_to=None)path_in - str Object con ruta absoluta o relativa a archivo para envolver.write_to - uno de:None : el resultado de envoltura será devuelto por este método como objeto bytesfile : el resultado se escribirá en el objeto tipo archivo especificado aquí. Debe abrirse en modo binario de lectura-escritura ( 'w+b' ) y soportar la operación seek .str - ruta al archivo de salida, absoluto o relativo. El resultado se escribirá allí. Debe tener una extensión: esta es Oracle wrap Utility Featrue. Se agrega .plb sufijo por sí solo si se omite una extensión. Por favor especifique la extensión siemprewrite_to arribawrap_buf(fl_in, write_to=None)fl_in - file o objeto file-like para envolver datos de. Debe abrirse en modo binario y soportar la operación seek ( 'rb' ).write_to - lo mismo que para wrap_pathwrap_pathunwrap_path(path_in, write_to=None)path_in - str Object con ruta absoluta o relativa a archivo para desenvolver.write_to - uno de:None : el resultado de desenvolvimiento será devuelto por este método como objeto bytesfile : el resultado se escribirá en el objeto tipo archivo especificado aquí. Debe abrirse en modo binario de lectura-escritura ( 'w+b' ) y soportar la operación seek .str - ruta al archivo de salida, absoluto o relativo. El resultado se escribirá allí.write_to arribaunwrap_buf(fl_in, write_to=None)fl_in - file o objeto file-like para envolver datos de. Debe abrirse en modo binario y soportar la operación seek ( 'rb' ).write_to - lo mismo que para unwrap_pathunwrap_path Envolver/desenvolver todo el archivo a otro archivo. Ejecute esto para obtener una lista de argumentos:
python -m oc_sql_helpers.wrapper --help
La clase PLSQLNormalizer es o Normalización del código PL/SQL.
La normalización significa casi lo mismo que el estilo de código , pero menos estrictamente. Esto significa que el resultado de la normalización puede ser inutilizable incluso si la fuente es correcta desde el punto de vista PL/SQL .
La normalización predeterminada es:
CREATE sin comisión.CREATE en sí misma se ordena a la primera línea de AS (o IS o WRAPPED ), incluido el nombre del objeto, el tipo y el esquema. Los caracteres y comentarios de espacio adicional se reemplazan con espacio único.CREATE ordenada) se aplica , incluido el esquema y el nombre del objeto ." entonces esos cotas dobles se eliminarán cuando sea posible. Ejemplo: "schema"."name" " "another.schema"."another.name" "ANOTHER.SCHEMA"."ANOTHER.NAME" SCHEMA.NAMEOtra bandera de normalización :
uppercase : Todos los lexemas del lenguaje en el cuerpo del objeto se superarán excepto literalesno-comments : todos los comentarios dentro del cuerpo, incluidos los signos de comentarios, serán reemplazados por un solo espacio.no-spaces : todos los personajes espaciales repetidos (espacio en sí, Newline, Tabulation ...) se reemplazarán con un espacio único general. Ejemplo: var := 'the value' se traducirá a var := 'the value' . Tenga en cuenta que no se realiza ningún reemplazo dentro de un 'the value' literal. Esta bandera no puede usarse no-commentsno-literals : todos los valores literarios de cadena se reemplazarán a los vacíos. Las señales literal en sí mismas no se cambian.comments-only : Deseche todo el contenido del archivo, pero los comentarios, incluidos los comentarios de comentarios. Cada comentario se iniciará con una nueva línea. Esta bandera no es compatible con nadie anterior PLSQLNormalizer() - para instanciar un objeto para esta clase
Métodos
normalize_path(path, flags=None, lines=None, write_to=None)path : objeto str con ruta absoluta o relativa para archivar para normalizar.flags - Banderas de normalización, list de enteros de la enumeración de PLSQLNormalizationFlags , ver más abajo. None los valores significa hacer una normalización de manera predeterminada ( CREATE definición) solamente.lines - int , limitar las líneas de normalización (contadas desde la fuente ). Valor predeterminado : None , significa normalizar completa fuentewrite_to - uno de:None : el resultado de envoltura será devuelto por este método como objeto bytesfile : el resultado se escribirá en el objeto tipo archivo especificado aquí. Debe abrirse en modo binario de lectura-escritura ( 'w+b' ) y soportar la operación seek .str - ruta al archivo de salida, absoluto o relativo. El resultado se escribirá allí. Debe tener una extensión: esta es Oracle wrap Utility Featrue. Se agrega .plb sufijo por sí solo si se omite una extensión. Por favor especifique la extensión siemprewrite_to arribanormalize(fl, flags, lines=None write_to=None)fl - uno de:file o objeto file-like para normalizar los datos de. Debe abrirse en modo binario y soportar la operación seek ( 'rb' ).str - datos de cadena para normalizarbytes - datos "binarios" para normalizarflags : lo mismo que para normalize_pathlines : lo mismo que para normalize_pathwrite_to - Lo mismo que para normalize_pathnormalize_pathis_sql(fl) : verificar los datos dados es compatible con el código PL/SQLfl - lo mismo que para normalizebool , código PL/SQL envuelto o nois_sql_path(path) : lo mismo que is_sql pero el argumento se trata como una ruta a un archivo con el código posibleis_wrapped(fl) : verifique los datos dados es compatible con el código PL/SQL envueltofl - lo mismo que para normalizebool , código PL/SQL compatible o nois_wrapped_path(path) : lo mismo que is_wrapped pero el argumento se trata como una ruta a un archivo con el código posibleis_wrappable(fl) : verifique los datos dados es compatible con el código PL/SQL envueltofl - lo mismo que para normalizebool , objeto PL/SQL envolvente en el código o nois_wrappable_path(path) : lo mismo que is_wrappable pero el argumento se trata como una ruta a un archivo con el código posible PLSQLNormalizationFlags - Enumeración de banderas:
uppercaseno_commentsno_spacesno_literalscomments_onlyConsulte la descripción detallada anterior en otro capítulo de indicadores de normalización de la sección del término de normalización .
Normalización de un archivo completo a otro archivo. Ejecute esto para obtener una lista de argumentos:
python -m oc_sql_helpers.normalizer --help