PL/SQL 코드 자동 처리 및 서식을위한 도구
create . 다중 방향 파일을 처리 한 결과는 예측할 수 없으므로 모든 도구 ( str_decoder 제외)는 예외가 발생합니다. 유일한 함수 decode_to_str는 라인 인코딩을 감지하고 UTF-8 로 다시 코딩하려고합니다. 인코딩이 불가능한 경우 ValueError를 높입니다.
decode_to_str(line, probables=None)
line - 디코딩 할 텍스트가있는 개체를 bytesprobables 점검 할 기본 인코딩이있는 str list . 기본값 : ['cp866', 'cp1251', 'koi8-r']str ( UTF-8 로 디코딩 및 재 인코딩) 전체 파일을 다른 파일로 디코딩합니다. 인수 목록을 얻으려면 이것을 실행하십시오.
python -m oc_sql_helpers.str_decoder --help
PLSQLWrapper 클래스는 Oracle 랩핑 소스와 함께 작업하는 도구입니다.
파일을 랩핑하기 위한 추가 요구 사항이 있습니다. 래프 랩 랩 방법은 작동하지 않고 작동합니다. 이들은 라이센스 위반으로 인해이 패키지에 포함되지 않은 Oracle 의 원래 wrap 유틸리티 사용 때문입니다. 별도로 설치해야합니다.
ORACLE_HOME 환경 변수는 올바르게 설정됩니다wrap 바이너리는 ${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_to 참조하십시오wrap_buf(fl_in, write_to=None)fl_in file 또는 file-like 개체는 데이터를 랩핑합니다. 이진 모드로 열리고 seek Operation ( 'rb' )을 지원해야 합니다 .write_to wrap_path 와 동일합니다wrap_path 와 동일합니다unwrap_path(path_in, write_to=None)path_in 를 풀기위한 파일 또는 상대 경로를 가진 str 객체.write_to 중 하나 :None - 랩핑 UND는 bytes 객체 로이 메소드에 의해 반환됩니다.file - 결과는 여기에 지정된 파일과 같은 객체에 기록됩니다. 읽기 쓰기 바이너리 모드 ( 'w+b' )로 열리고 seek 작업을 지원해야 합니다 .str 출력 파일, 절대 또는 상대 경로. 결과는 거기에 기록됩니다.write_to 참조하십시오unwrap_buf(fl_in, write_to=None)fl_in file 또는 file-like 개체는 데이터를 랩핑합니다. 이진 모드로 열리고 seek Operation ( 'rb' )을 지원해야 합니다 .write_to unwrap_path 와 동일합니다unwrap_path 와 동일합니다 전체 파일을 다른 파일로 래핑/랩핑합니다. 인수 목록을 얻으려면 이것을 실행하십시오.
python -m oc_sql_helpers.wrapper --help
PLSQLNormalizer class는 또는 pl/sql 코드 정규화입니다 .
정규화는 코드 스타일 과 거의 동일하지만 덜 엄격하게 의미합니다. 이는 소스가 PL/SQL 관점에서 올바른 경우에도 정규화 결과를 사용할 수 없을 수 있음을 의미합니다.
기본 정규화는 다음 과 같습니다.
CREATE 문이 제거되기 전의 모든 쓰레기가 제거됩니다.CREATE 명령문 자체는 객체 이름, 유형 및 스키마를 포함하여 AS (또는 IS 또는 WRAPPED ) 토큰까지 첫 번째 줄을 주문합니다. 여분의 공간 문자와 댓글은 단일 공간으로 대체됩니다.CREATE 명세서와 함께)은 스키마 및 객체 이름을 포함하여 대행됩니다 ." 가능한 경우 이중 인용물이 제거됩니다. 예 : "schema"."name" 정규화 후 SCHEMA.NAME 되며 "another.schema"."another.name" "ANOTHER.SCHEMA"."ANOTHER.NAME"다른 정규화 플래그 :
uppercase : 물체 몸의 모든 언어 lexemes는 리터럴을 제외하고 어퍼에 기반을 둡니다.no-comments : 댓글 표시 자체를 포함한 신체 내부의 모든 의견은 단일 공간으로 대체됩니다.no-spaces : 모든 반복되는 공간 특성 (공간 자체, Newline, Tabulation ...)은 일반적인 단일 공간으로 대체됩니다. 예 : 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_to 참조하십시오normalize(fl, flags, lines=None write_to=None)fl 하나의 :file 또는 file-like 개체는 데이터를 정규화합니다. 이진 모드로 열리고 seek Operation ( 'rb' )을 지원해야 합니다 .str 정규화하려면 문자열 데이터bytes - "바이너리"데이터를 정규화합니다flags - normalize_path 와 동일합니다lines - normalize_path 와 동일합니다write_to _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