برنامه نویسی

باز کردن Oracle Home .plb – انجمن DEV

هنگامی که با یک اوراکل خطا دریافت می کنید DBMS_ بسته، یک شماره خط داده شده است تا بتوانید عیب یابی کنید. با این حال، اکثر آنها هستند wrapped تا هنگام بارگذاری آن در فرهنگ لغت، کد آنها فشرده باشد و نظرات آنها حذف شود. باز کردن فایل با a CREATE OR REPLACE PACKAGE BODY فقط کاراکترهای قابل چاپ تصادفی را نشان می دهد:

توضیحات تصویر

برای عیب یابی یک خطا، می توانید کد PL/SQL را به راحتی برگردانید تا خطی که در آن خطا دریافت کرده اید را بررسی کنید.

یک افزونه برای SQL Developer وجود دارد:

PL/SQL Unwrapper برای توسعه دهنده SQL

معرفی

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 پنجره:

oddgen Generator

گره 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 شروع نشده است و فقط برای اهداف آموزشی است. هیچ چیز هنگام بسته بندی رمزگذاری نمی شود، اما این به شما هیچ حقی در مورد کد نمی دهد. این متن باز نیست!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا