باز کردن Oracle Home .plb – انجمن DEV
هنگامی که با یک اوراکل خطا دریافت می کنید DBMS_
بسته، یک شماره خط داده شده است تا بتوانید عیب یابی کنید. با این حال، اکثر آنها هستند wrapped
تا هنگام بارگذاری آن در فرهنگ لغت، کد آنها فشرده باشد و نظرات آنها حذف شود. باز کردن فایل با a CREATE OR REPLACE PACKAGE BODY
فقط کاراکترهای قابل چاپ تصادفی را نشان می دهد:
برای عیب یابی یک خطا، می توانید کد PL/SQL را به راحتی برگردانید تا خطی که در آن خطا دریافت کرده اید را بررسی کنید.
یک افزونه برای SQL Developer وجود دارد:
معرفی
PL/SQL Unwrapper for SQL Developer یک برنامه افزودنی رایگان برای باز کردن کدهای PL/SQL است که با ابزار بسته بندی سرور پایگاه داده Oracle نسخه 10g، 11g، 12c، 18c یا 19c پیچیده شده است.
مثال
باز کردن یک واحد PL/SQL پیچیده (رویه، عملکرد، مشخصات بسته، بدنه بسته، مشخصات نوع یا بدنه نوع) در یک ویرایشگر SQL Developer
در ویرایشگر کلیک راست کنید تا منوی پاپ آپ نمایش داده شود. انتخاب کنید Unwrap
یا به سادگی فشار دهید Ctrl-Shift-U
برای باز کردن کد
محتوای ویرایشگر با کد باز شده جایگزین می شود.
بهطور پیشفرض کد بازشده حاوی یک عبارت DDL معتبر نیست. در این مورد CREATE
گم شده است. می توانید این رفتار را در تنظیمات برگزیده تغییر دهید.
بررسی کنید Add ‘CREATE OR REPLACE'
گزینه ای برای دریافت یک بیانیه کامل DDL.
انبوه باز کردن
اگر oddgen را برای SQL Developer نصب کنید، a PL/SQL Unwrapper
گره در Generators
پنجره:
گره PL/SQL Unwrapper را باز کنید…
یک سایت آنلاین نیز می تواند این کار را به صورت آنلاین انجام دهد: https://www.codecrete.net/UnwrapIt/
در اینجا یک اسکریپت کوچک است که کد را از همه می نویسد *.plb
در $ORACLE_HOME
به a .unwrapped
یکی:
export PATH=$PATH:$ORACLE_HOME/python/bin
pip install html2text
for f in $(grep -l ' wrapped *$' $(find $ORACLE_HOME -name "*.plb"))
do
curl -s -F "file=@$f" -F "ShowLineNumbers=false" -F "UnwrapFile=Unwrap File" https://www.codecrete.net/UnwrapIt/ |
html2text | awk '
/Unwrap More Code/{p="Y";next}
/Bleichenbacher/{print "--",$0;next}
p=="Y"{gsub(/ʼ/,qq);print}
' qq="'" > ${f}.unwrapped && wc ${f}.unwrapped
done
این فقط در یک آزمایشگاه اجرا می شود، چرا یک کانتینر از نسخه رایگان Oracle 23c شروع نشده است و فقط برای اهداف آموزشی است. هیچ چیز هنگام بسته بندی رمزگذاری نمی شود، اما این به شما هیچ حقی در مورد کد نمی دهد. این متن باز نیست!