Alat untuk Memproses dan Memformat Kode PL/SQL Otomatis
create . Hasil pemrosesan file multi-objek tidak dapat diprediksi, jadi semua alat (kecuali STR_DECODER ) akan meningkatkan pengecualian. Satu-satunya fungsi decode_to_str mencoba mendeteksi pengkodean garis dan mengkode ulang ke UTF-8 . Meningkatkan NilaiError jika pengkodean tidak mungkin.
decode_to_str(line, probables=None)
line - bytes objek dengan teks untuk decodeprobables - list str dengan pengkodean primer untuk diperiksa. Default: ['cp866', 'cp1251', 'koi8-r']str (diterjemahkan dan dikodekan ulang ke UTF-8 ) Decoding seluruh file ke file lain. Jalankan ini untuk mendapatkan daftar argumen:
python -m oc_sql_helpers.str_decoder --help
Kelas PLSQLWrapper adalah alat untuk bekerja dengan sumber yang dibungkus Oracle.
Ada persyaratan tambahan untuk membungkus file. Perhatikan bahwa metode Unwrap berfungsi tanpanya. Ini karena penggunaan utilitas wrap asli dari Oracle yang tidak termasuk dalam paket ini karena pelanggaran lisensi . Anda harus menginstalnya secara terpisah.
ORACLE_HOME harus diatur dengan benarwrap biner akan ditempatkan di bawah ${ORACLE_HOME}/bin dan harus memiliki izin untuk pengguna yang efektif PLSQLWrapper() - Untuk membuat instantiate objek untuk kelas itu
Metode
wrap_path(path_in, write_to=None)path_in - Objek str dengan jalur absolut atau relatif untuk file untuk membungkus.write_to - salah satu dari:None - hasil pembungkus akan dikembalikan dengan metode ini sebagai objek bytesfile - Hasil akan ditulis ke objek seperti file yang ditentukan di sini. Harus dibuka dalam mode biner baca-tulis ( 'w+b' ) dan operasi seek dukungan.str - path ke file output, absolut atau relatif. Hasilnya akan ditulis di sana. Harus memiliki ekstensi - ini adalah oracle wrap utility featrue. Ini menambahkan akhiran .plb sendiri jika ekstensi dihilangkan. Harap tentukan ekstensi selaluwrite_to di ataswrap_buf(fl_in, write_to=None)fl_in - Objek file atau file-like untuk membungkus data dari. Harus dibuka dalam mode biner dan pengoperasian seek dukungan ( 'rb' ).write_to - sama seperti untuk wrap_pathwrap_pathunwrap_path(path_in, write_to=None)path_in - Objek str dengan jalur absolut atau relatif ke file ke unwrap.write_to - salah satu dari:None - hasil yang tidak dibuka akan dikembalikan dengan metode ini sebagai objek bytesfile - Hasil akan ditulis ke objek seperti file yang ditentukan di sini. Harus dibuka dalam mode biner baca-tulis ( 'w+b' ) dan operasi seek dukungan.str - path ke file output, absolut atau relatif. Hasilnya akan ditulis di sana.write_to di atasunwrap_buf(fl_in, write_to=None)fl_in - Objek file atau file-like untuk membungkus data dari. Harus dibuka dalam mode biner dan pengoperasian seek dukungan ( 'rb' ).write_to - Sama seperti untuk unwrap_pathunwrap_path Membungkus/membuka seluruh file ke file lain. Jalankan ini untuk mendapatkan daftar argumen:
python -m oc_sql_helpers.wrapper --help
Kelas PLSQLNormalizer adalah atau normalisasi kode PL/SQL.
Normalisasi berarti hampir sama dengan gaya kode , tetapi kurang ketat. Ini berarti hasil normalisasi mungkin tidak dapat digunakan bahkan jika sumbernya benar dari sudut pandang PL/SQL .
Normalisasi default adalah:
CREATE tanpa komentar pertama dihapus.CREATE pernyataan itu sendiri dipesan ke baris pertama hingga AS (atau IS atau WRAPPED ) token, termasuk nama objek, jenis dan skema. Karakter dan komentar ruang ekstra diganti dengan ruang tunggal.CREATE yang dipesan) ditingkatkan , termasuk skema dan nama objek ." maka kutipan ganda itu akan dihapus jika memungkinkan. Contoh: "schema"."name" akan menjadi SCHEMA.NAME setelah normalisasi, "ANOTHER.SCHEMA"."ANOTHER.NAME" "another.schema"."another.name"Bendera normalisasi lainnya :
uppercase : semua leksem bahasa dalam tubuh objek akan ditingkatkan kecuali literalno-comments : Semua komentar di dalam tubuh, termasuk tanda-tanda komentar itu sendiri, akan diganti dengan ruang tunggal.no-spaces : Semua karakter ruang yang berulang (ruang itu sendiri, newline, tabulasi ...) akan diganti dengan ruang tunggal umum. Contoh: var := 'the value' akan diterjemahkan ke var := 'the value' . Perhatikan bahwa tidak ada penggantian yang dilakukan di dalam literal 'the value' . Bendera ini tidak dapat digunakan dengan no-commentsno-literals : Semua nilai literal string akan diganti menjadi yang kosong. Tanda -tanda literal itu sendiri tidak berubah.comments-only : Buang seluruh konten file tetapi komentar, termasuk tanda-tanda komentar sendiri. Setiap komentar akan dimulai dengan baris baru. Bendera ini tidak kompatibel dengan siapa pun di atas PLSQLNormalizer() - Untuk membuat instantiate objek untuk kelas ini
Metode
normalize_path(path, flags=None, lines=None, write_to=None)path - Objek str dengan jalur absolut atau relatif untuk mengajukan untuk menormalkan.flags - Bendera normalisasi, list bilangan bulat dari enumerasi PLSQLNormalizationFlags , lihat di bawah. None nilai berarti melakukan normalisasi default ( CREATE DEFINISI) saja.lines - int , batas garis normalisasi (dihitung dari sumber ). Default : None , berarti menormalkan seluruh sumberwrite_to - salah satu dari:None - hasil pembungkus akan dikembalikan dengan metode ini sebagai objek bytesfile - Hasil akan ditulis ke objek seperti file yang ditentukan di sini. Harus dibuka dalam mode biner baca-tulis ( 'w+b' ) dan operasi seek dukungan.str - path ke file output, absolut atau relatif. Hasilnya akan ditulis di sana. Harus memiliki ekstensi - ini adalah oracle wrap utility featrue. Ini menambahkan akhiran .plb sendiri jika ekstensi dihilangkan. Harap tentukan ekstensi selaluwrite_to di atasnormalize(fl, flags, lines=None write_to=None)fl - salah satu dari:file atau objek file-like untuk menormalkan data dari. Harus dibuka dalam mode biner dan pengoperasian seek dukungan ( 'rb' ).str - Data string untuk menormalkanbytes - data "biner" untuk menormalkanflags - sama seperti untuk normalize_pathlines - sama seperti untuk normalize_pathwrite_to - sama seperti untuk normalize_pathnormalize_pathis_sql(fl) - Periksa data yang diberikan adalah kode PL/SQL yang didukungfl - Sama seperti untuk normalizebool , kode pl/sql dibungkus atau tidakis_sql_path(path) - Sama seperti is_sql tetapi argumen diperlakukan sebagai jalur ke file dengan kode yang mungkinis_wrapped(fl) - Periksa data yang diberikan didukung kode PL/SQL yang dibungkusfl - Sama seperti untuk normalizebool , kode PL/SQL yang didukung atau tidakis_wrapped_path(path) - Sama seperti is_wrapped tetapi argumen diperlakukan sebagai jalur ke file dengan kode yang mungkinis_wrappable(fl) - Periksa data yang diberikan didukung kode PL/SQL yang dibungkusfl - Sama seperti untuk normalizebool , objek pl/sql yang dapat dibungkus dalam kode atau tidakis_wrappable_path(path) - Sama seperti is_wrappable tetapi argumen diperlakukan sebagai jalur ke file dengan kode yang mungkin PLSQLNormalizationFlags - enumerasi bendera:
uppercaseno_commentsno_spacesno_literalscomments_onlyLihat deskripsi terperinci di atas dalam bab bendera normalisasi lain dari bagian istilah normalisasi .
Normalisasi seluruh file ke file lain. Jalankan ini untuk mendapatkan daftar argumen:
python -m oc_sql_helpers.normalizer --help