Сюрпризы oracle – обфускация пакетов

Все нижеследующее справедливо для 9-ки (Oracle 9.2.x.x)

Вероятно Вам приходилось обфусцировать plsql пакеты Oracle. Вероятно также что однажды утилита wrap не смогла это сделать. И Вы получили примерно такую ошибку:

kgefec: fatal error 0
kgepop: no error frame to pop to for error 603

или другую ошибку подобную ошибку. И Вам приходилось рыскать в интернете – что же это такое, почему оно происходит, как с этим бороться и т.д.

Вы разбивали пакет на несколько пакетов, включали опцию /3Gb, обфусцирование делали где памяти немерянно, и т.д.

Всё это делали и мы, пока не оказалось, что вначале достаточно убрать лидирущие пробелы в коде (не руками конечно) перед обсуцированием.

Оказалось размер текста (не кода) критичен для обфускации и простым удалением лидирующих пробелов можно уменьшить текст процентов на 10-15%

И о чудо, гигабайта RAM достаточно для обфускации пакета размером в мегабайт. (Почему при этом используется 2.5GB RAM для меня загадка)

К счастью wrap в десятке делает все по уму, быстро и без излишнего использования памяти

Tags: , ,

Смотрите также: