Ferramentas para processamento automático e formatação do código PL/SQL
create . O resultado do processamento de arquivos com vários objetos é imprevisível; portanto, todas as ferramentas (exceto STR_Decoder ) aumentarão uma exceção. A única função decode_to_str tenta detectar a codificação de linha e recodificá-la para UTF-8 . Aumenta o ValueError se a codificação for impossível.
decode_to_str(line, probables=None)
line - bytes com um texto para decodificarprobables - list de str com codificações primárias para verificar. Padrão: ['cp866', 'cp1251', 'koi8-r']str (decodificado e recodificado para UTF-8 ) Decodificar o arquivo inteiro para outro arquivo. Execute isso para obter a lista de argumentos:
python -m oc_sql_helpers.str_decoder --help
A classe PLSQLWrapper é uma ferramenta para trabalhar com fontes embrulhadas no Oracle.
Existem requisitos adicionais para envolver arquivos. Observe que os métodos do Unwrap estão funcionando sem ele. Isso se deve ao uso do utilitário wrap original da Oracle , que não está incluído neste pacote devido à violação da licença . Você tem que instalá -lo separadamente.
ORACLE_HOME deve ser definida corretamentewrap Binário deve ser colocado sob ${ORACLE_HOME}/bin e deve ter permissão para executar o usuário eficaz PLSQLWrapper() - Para instanciar um objeto para essa classe
Métodos
wrap_path(path_in, write_to=None)path_in - objeto str com caminho absoluto ou relativo para o arquivo para embrulhar.write_to - um de:None - o resultado de embalagem será devolvido por este método como objeto bytesfile - O resultado será gravado no objeto semelhante a um arquivo especificado aqui. Deve ser aberto no modo binário de leitura-gravação ( 'w+b' ) e operação seek suporte.str - caminho para o arquivo de saída, absoluto ou relativo. O resultado será escrito lá. Deve ter uma extensão - este é o Oracle wrap Utility Feactue. Ele anexa o sufixo .plb por si só se uma extensão omitida. Especifique a extensão semprewrite_to acimawrap_buf(fl_in, write_to=None)fl_in - file ou objeto file-like para envolver dados. Deve ser aberto no modo binário e na operação seek suporte ( 'rb' ).write_to - o mesmo que para wrap_pathwrap_pathunwrap_path(path_in, write_to=None)path_in - objeto str com caminho absoluto ou relativo para o arquivo para desembrulhar.write_to - um de:None - o resultado do desembrulhamento será retornado por este método como objeto bytesfile - O resultado será gravado no objeto semelhante a um arquivo especificado aqui. Deve ser aberto no modo binário de leitura-gravação ( 'w+b' ) e operação seek suporte.str - caminho para o arquivo de saída, absoluto ou relativo. O resultado será escrito lá.write_to acimaunwrap_buf(fl_in, write_to=None)fl_in - file ou objeto file-like para envolver dados. Deve ser aberto no modo binário e na operação seek suporte ( 'rb' ).write_to - o mesmo que para unwrap_pathunwrap_path Embrulhar/desembrulhar o arquivo inteiro para outro arquivo. Execute isso para obter a lista de argumentos:
python -m oc_sql_helpers.wrapper --help
A classe PLSQLNormalizer é ou normalização do código PL/SQL.
A normalização significa quase o mesmo que o estilo de código , mas menos estritamente. Isso significa que o resultado da normalização pode ser inutilizável, mesmo que a fonte esteja correta do ponto de vista PL/SQL .
A normalização padrão é:
CREATE não declarada é removida.CREATE a própria declaração é ordenada para a primeira linha até o token AS (ou IS , ou WRAPPED ), incluindo nome do objeto, tipo e esquema. Personagens e comentários do espaço extras são substituídos por espaço único.CREATE ordenada) é baseada em upprc , incluindo esquema e nome do objeto ." , essas ditas serão removidas sempre que possível. Exemplo: "schema"."name" será SCHEMA.NAME após a normalização, enquanto "another.schema"."another.name" "ANOTHER.SCHEMA"."ANOTHER.NAME"Outro sinalizador de normalização :
uppercase : Todos os lexemes de linguagem no corpo do objeto serão montados, exceto literaisno-comments : todos os comentários dentro do corpo, incluindo os próprios sinais de comentários, serão substituídos por um espaço único.no-spaces : todos os personagens de espaço repetidos (o próprio espaço, nova linha, tabulação ...) serão substituídos por espaço único geral. Exemplo: var := 'the value' será traduzido para var := 'the value' . Observe que nenhuma substituição é feita dentro de um 'the value' literal. Esta bandeira não pode ser usada com no-commentsno-literals : Todos os valores literais de string serão substituídos para os vazios. Os próprios sinais literais não são alterados.comments-only : descarte todo o conteúdo do arquivo, mas comentários, incluindo os comentários. Cada comentário será iniciado com uma nova linha. Esta bandeira não é compatível com ninguém acima PLSQLNormalizer() - para instanciar um objeto para esta classe
Métodos
normalize_path(path, flags=None, lines=None, write_to=None)path - str Object com caminho absoluto ou relativo para o arquivo para normalizar.flags - sinalizadores de normalização, list de números inteiros da enumeração PLSQLNormalizationFlags , veja abaixo. None valor significa apenas a normalização do padrão ( CREATE definição).lines - int , Limite as linhas de normalização (contadas da fonte ). Padrão : None , significa normalizar a fonte inteirawrite_to - um de:None - o resultado de embalagem será devolvido por este método como objeto bytesfile - O resultado será gravado no objeto semelhante a um arquivo especificado aqui. Deve ser aberto no modo binário de leitura-gravação ( 'w+b' ) e operação seek suporte.str - caminho para o arquivo de saída, absoluto ou relativo. O resultado será escrito lá. Deve ter uma extensão - este é o Oracle wrap Utility Feactue. Ele anexa o sufixo .plb por si só se uma extensão omitida. Especifique a extensão semprewrite_to acimanormalize(fl, flags, lines=None write_to=None)fl - um de:file ou file-like para normalizar os dados de. Deve ser aberto no modo binário e na operação seek suporte ( 'rb' ).str - Dados da string para normalizarbytes - dados "binários" para normalizarflags - o mesmo que para normalize_pathlines - o mesmo que para normalize_pathwrite_to - o mesmo que para normalize_pathnormalize_pathis_sql(fl) - Verifique se os dados fornecidos são suportados Código PL/SQLfl - o mesmo que para normalizebool , código PL/SQL embrulhado ou nãois_sql_path(path) - O mesmo que is_sql , mas o argumento é tratado como um caminho para um arquivo com possível códigois_wrapped(fl) - Verifique se os dados fornecidos são suportados Código PL/SQL embrulhadofl - o mesmo que para normalizebool , código PL/SQL suportado ou nãois_wrapped_path(path) - O mesmo que is_wrapped , mas o argumento é tratado como um caminho para um arquivo com possível códigois_wrappable(fl) - Verifique se os dados fornecidos são suportados Código PL/SQL embrulhadofl - o mesmo que para normalizebool , objeto PL/SQL envolvente no código ou nãois_wrappable_path(path) - O mesmo que is_wrappable , mas o argumento é tratado como um caminho para um arquivo com possível código PLSQLNormalizationFlags - Enumeração de bandeiras:
uppercaseno_commentsno_spacesno_literalscomments_onlyVeja a descrição detalhada acima em outro capítulo dos sinalizadores de normalização da seção de termos de normalização .
Normalizando o arquivo inteiro para outro arquivo. Execute isso para obter a lista de argumentos:
python -m oc_sql_helpers.normalizer --help