octopus oc corelibs sql helpers
1.0.3
自动处理和格式化PL/SQL代码的工具
create语句的对象。处理多对象文件的结果是不可预测的,因此所有工具( str_decoder除外)都会引起异常。唯一的函数DECODE_TO_STR试图检测线路编码并将其重新编码为UTF-8 。如果不可能编码,则会提高价值。
decode_to_str(line, probables=None)
line - bytes对象用文本解码probables带有主要编码的str list要检查。默认值: ['cp866', 'cp1251', 'koi8-r']str (解码并重新编码为UTF-8 ) 将整个文件解码到另一个文件。运行以获取参数列表:
python -m oc_sql_helpers.str_decoder --help
PLSQLWrapper类是使用Oracle包裹的来源的工具。
包装文件还有其他要求。请注意,没有它可以使用包装方法。这些是由于使用Oracle的原始wrap实用程序的使用,由于违反许可证,该软件包未包含。您必须单独安装。
ORACLE_HOME环境变量要正确设置wrap Binary将放置在${ORACLE_HOME}/bin下,并且必须具有有效用户的执行权限PLSQLWrapper() - 实例化该类的对象
方法
wrap_path(path_in, write_to=None)path_in具有绝对或相对路径的str对象要包装。write_to - 之一:None - 包装结果将由此方法作为bytes对象返回file - 结果将写入此处指定的类似文件的对象。必须以读取二进制模式( 'w+b' )打开,并支持seek操作。str输出文件,绝对或相对的路径。结果将在那里写。必须具有扩展名 - 这是Oracle wrap实用程序FEATRUE。如果省略了扩展名,它会单独附加.plb后缀。请始终指定扩展名write_towrap_buf(fl_in, write_to=None)fl_in file或file-like对象,以包装数据。必须以二进制模式打开并支持seek操作( 'rb' )。write_to与wrap_path相同wrap_path相同unwrap_path(path_in, write_to=None)path_in具有绝对或相对路径的str对象,要解开文件。write_to - 之一:None - 拆开结果将由此方法作为bytes对象返回file - 结果将写入此处指定的类似文件的对象。必须以读取二进制模式( 'w+b' )打开,并支持seek操作。str输出文件,绝对或相对的路径。结果将在那里写。write_tounwrap_buf(fl_in, write_to=None)fl_in file或file-like对象,以包装数据。必须以二进制模式打开并支持seek操作( 'rb' )。write_to与unwrap_path相同unwrap_path相同包装/将整个文件包装到另一个文件。运行以获取参数列表:
python -m oc_sql_helpers.wrapper --help
PLSQLNormalizer类是或PL/SQL代码归一化。
归一化意味着与代码样式几乎相同,但严格不太严格。这意味着即使从PL/SQL的角度来看,归一化结果也可能是无法使用的。
默认归一化为:
CREATE陈述之前的所有垃圾。CREATE语句本身被订购为第一个阵列,直至AS (或IS WRAPPED )令牌,包括对象名称,类型和架构。额外的空间字符和注释被单个空间替换。CREATE语句)是基于大量的,包括架构和对象名称。" ,那么这些双引号将在可能的情况下删除。示例: "schema"."name"将在归一化之后为SCHEMA.NAME ,而"another.schema"."another.name" "ANOTHER.SCHEMA"."ANOTHER.NAME"另一个标准化标志:
uppercase :对象主体中的所有语言词汇都将被覆盖,除非文字no-comments :身体内部的所有评论,包括评论符号本身,都将被单个空间替换。no-spaces :所有重复的空间字符(空间本身,纽文,制表...)将被一般的单个空间代替。示例: var := 'the value'将被转换为var := 'the value' 。请注意,在字面的'the value'中未完成替换。这个标志可能不使用no-comments使用no-literals :所有字符串文字值将替换为空字符值。字面迹象本身并没有改变。comments-only :丢弃整个文件内容,但注释,包括自己的评论符号。每个评论将从新的行开始。这个标志与上面的任何人都不兼容PLSQLNormalizer() - 实例化此类对象
方法
normalize_path(path, flags=None, lines=None, write_to=None)path str对象具有绝对或相对路径的文件归一化。flags - 归一化标志,来自PLSQLNormalizationFlags枚举的整数list ,请参见下文。 None值表示仅默认( CREATE定义)归一化。lines - int ,限制归一化线(从源计数)。默认值: None ,表示整个源标准化write_to - 之一:None - 包装结果将由此方法作为bytes对象返回file - 结果将写入此处指定的类似文件的对象。必须以读取二进制模式( 'w+b' )打开,并支持seek操作。str输出文件,绝对或相对的路径。结果将在那里写。必须具有扩展名 - 这是Oracle wrap实用程序FEATRUE。如果省略了扩展名,它会单独附加.plb后缀。请始终指定扩展名write_tonormalize(fl, flags, lines=None write_to=None)fl之一:file或file-like对象以将数据归一化。必须以二进制模式打开并支持seek操作( 'rb' )。str弦数据正常化bytes - “二进制”数据以归一化flags - 与normalize_path相同lines - 与normalize_path相同write_to与normalize_path相同normalize_path相同is_sql(fl) - 检查给出的数据受支持的PL/SQL代码fl与normalize一样bool ,包装PL/SQL代码是否is_sql_path(path) - 与is_sql相同,但参数被视为具有可能代码的文件的路径is_wrapped(fl) - 检查给出的数据已包装PL/SQL代码fl与normalize一样bool ,支持的PL/SQL代码是否is_wrapped_path(path) - 与is_wrapped相同,但参数被视为具有可能代码的文件的路径is_wrappable(fl) - 检查给出的数据已包装PL/SQL代码fl与normalize一样bool ,在代码中是否包含PL/SQL对象is_wrappable_path(path) - 与is_wrappable相同,但参数被视为具有可能代码的文件的路径PLSQLNormalizationFlags标志的枚举:
uppercaseno_commentsno_spacesno_literalscomments_only请参阅“标准化术语”部分的另一个标准化标志章中的详细说明。
将整个文件归一化为另一个文件。运行以获取参数列表:
python -m oc_sql_helpers.normalizer --help