دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۰
  • فروردین

جلسه ۱۹ : Collections در PL / SQL

  • دسته‌بندی‌ها :
جلسه ۱۹ : Collections در PL / SQL
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و خسته نباشید خدمت کاربران محترم سایت آموزشی پی وی لرن. و کاربرانی که آموزش کامل  PL/SQL را دنبال می کنند. در این جلسه، ما Collections در PL / SQL ( مجموعه در PL / SQL ) را مورد بحث قرار خواهیم داد. یک مجموعه یک گروه مرتب شده از عناصر دارای یک نوع داده است. هر عنصر توسط یک زیرمجموعه منحصر به فرد شناسایی می شود که موقعیت آن را در مجموعه نشان می دهد.

      PL / SQL سه نوع مجموعه در PL / SQL را فراهم می کند.

      • فهرست بر اساس جداول یا آرایه انجمنی
      • میز تو در تو
      • آرایه متغیر و یا Varray

      اسناد اوراکل ویژگی های زیر را برای هر نوع مجموعه در PL / SQL فراهم می کند.

      نوع مجموعهتعداد عناصرنوع زیرنویسمتراکم یا اسپردکجا ایجاد شدمی تواند به عنوان نوع شیء باشد
      آرایه انجمنی (یا فهرستی از جدول)بدون محدودیترشته یا عدد صحیحهر دوفقط در بلوک PL / SQLنه
      میز تو در توبدون محدودیتصحیحشروع به چگالی می کند، می تواند کمیاب شودیا در بلوک PL / SQL یا در سطح طرحبله
      متغیرهای آرایه (Varray)محدودصحیحهمیشه متراکم استیا در بلوک PL / SQL یا در سطح طرحبله

      ما در مورد varray در جلسه آرایه های PL / SQL’ صحبت کرده ایم. در این جلسه، ما درباره جداول PL / SQL صحبت خواهیم کرد.

      هر دو نوع جداول PL / SQL، یعنی جداول فهرست و جداول توزیع نشده، یک ساختار مشابه دارند و ردیف آنها با استفاده از نشانه زیرنویس قابل دسترسی است. با این حال، این دو نوع جداول در یک جنبه متفاوت هستند. جداول توافقی در ستون پایگاه داده ذخیره می شوند و جداول جداگانه نمی توانند.

      فهرست توسط جدول

      جدول شاخص (که همچنین یک آرایه انجمنی نامیده می شود) مجموعه ای از جفت های کلید-ارزش است. هر کلید منحصر به فرد است و برای تعیین مقدار مربوطه استفاده می شود. کلید می تواند یک عدد صحیح یا یک رشته باشد.

      جدول شاخص با استفاده از نحوه زیر ایجاد می شود. در اینجا، ما یک جدول شاخص با نام table_name ایجاد می کنیم، کلید هایی که از subscript_type وجود دارد و مقادیر مرتبط از element_type را ببینید.

      مثال : 

      مثال

      مثال زیر نشان می دهد که چگونه برای ایجاد یک جدول برای ذخیره مقادیر عدد صحیح همراه با نام و بعد از آن یک لیست از نام ها را چاپ می کند.

      مثال : 

      هنگامی که کد بالا در SQL  فوری اجرا می شود، نتیجه زیر را تولید می کند.

      مثال : 

      مثال

      عناصری از جدول شاخص همچنین می تواند٪ ROWTYPE هر جدول پایگاه داده یا٪ TYPE از هر فیلد جدول پایگاه داده باشد.

      مثال زیر این مفهوم را نشان می دهد. ما از جدول مشتریان ذخیره شده در پایگاه داده استفاده خواهیم کرد.

      مثال : 

      مثال : 

      هنگامی که کد بالا در SQL فوری اجرا می شود، نتیجه زیر را تولید می کند.

      مثال : 

      جداول تو در تو

      • یک جدول توپی مانند یک آرایه یک بعدی با تعداد دلخواه عناصر است. با این حال، یک جدول توپی از آرایه در ابعاد زیر متفاوت است. آرایه تعدادی از عناصر را اعلام می کند، اما یک جدول توپی غیرممکن است. اندازه یک جدول تو در تو می تواند به صورت پویا افزایش یابد.
      • آرایه همواره متراکم است، به عنوان مثال، همیشه دارای زیرمجموعه های متوالی است. یک آرایه توپی در ابتدا متراکم است، اما زمانی که عناصر از آن حذف می شوند، می توانند کمیاب شوند.

      یک جدول توپی با استفاده از نحوه زیر ایجاد می شود.

      مثال : 

      این اعلان شبیه به اعلام یک شاخص توسط جدول است، اما هیچ بند INDEX BY وجود ندارد.

      در مجموعه در PL / SQL یک جدول توپی در یک ستون پایگاه داده ذخیره می شود. این می تواند بیشتر به منظور ساده سازی عملیات SQL که در آن شما به یک ستون تک ستون با یک جدول بزرگتر پیوستید استفاده می شود. آرایه انجمنی نمی تواند در پایگاه داده ذخیره شود.

      مثال

      مثال های زیر استفاده از جدول تو در تو را نشان می دهد.

      مثال : 

      هنگامی که کد بالا در SQL  فوری اجرا می شود، نتیجه زیر را تولید می کند.

      مثال : 

      مثال

      عناصر یک جدول توپی نیز می تواند٪ ROWTYPE هر جدول پایگاه داده یا٪ TYPE از هر فیلد جدول پایگاه داده باشد. مثال زیر این مفهوم را نشان می دهد. ما از جدول مشتریان ذخیره شده در پایگاه داده استفاده خواهیم کرد.

      مثال : 

      مثال : 

      هنگامی که کد بالا در فوری SQL اجرا می شود، نتیجه زیر را تولید می کند.

      مثال : 

      متدهای جمع آوری

      PL / SQL متدها مجموعه ای ساخته شده را فراهم می کند که Collections در PL / SQL ها را آسان تر برای استفاده می کند.

      جدول زیر متدها و اهداف آنها را فهرست می کند.

      S.Noنام و هدف متد
      ۱(EXISTS(n

      اگر عنصر n در یک مجموعه وجود داشته باشد TRUE را بر می گرداند؛ در غیر این صورت FALSE باز می گردد.

      ۲COUNT

      تعداد عناصری که مجموعه ای که در حال حاضر در آن موجود است را برمی گرداند.

      ۳LIMIT

      حداکثر اندازه یک مجموعه را بررسی می کند.

      ۴FIRST

      اولین (کوچکترین) عدد شاخص را در مجموعه ای که از زیرمجموعه های عدد صحیح استفاده می کند، باز می گرداند.

      ۵LAST

      آخرین (بزرگترین) عدد شاخص را در یک مجموعه ای که از زیرمجموعه های عدد صحیح استفاده می کند، می گیرد.

      ۶(PRIOR(n

      عدد شاخصی را که پیش از فهرست n در مجموعه قرار دارد را بر می گرداند.

      ۷NEXT(n)

      عدد شاخصی را که شاخص n را به دست می گیرد، باز می گرداند.

      ۸EXTEND

      یک عنصر صفر را به یک مجموعه اضافه می کند.

      ۹(EXTEND(n

      عناصر n null را به یک مجموعه اضافه می کند.

      ۱۰(EXTEND(n,i

      n کپی از عنصر i ام را به یک مجموعه اضافه می کند.

      ۱۱TRIM

      حذف یک عنصر از انتهای مجموعه.

      ۱۲(TRIM(n

      حذف عناصر از انتهای مجموعه.

      ۱۳DELETE

      تمام عناصر را از مجموعه حذف می کند، COUNT را به ۰ تنظیم می کند

      ۱۴(DELETE(n

      عنصر nth را از یک آرایه انجمنی با یک کلید عددی یا یک جدول تو در تو حذف می کند. اگر آرایه associative دارای یک کلید رشته باشد، عنصر مربوط به مقدار کلید حذف می شود. اگر n null باشد، (DELETE (n هیچ کاری انجام نمی دهد.

      ۱۵(DELETE(m,n

      تمام عناصر را در محدوده m..n از یک آرایه انجمنی یا جدول توزیع حذف می کند. اگر m بزرگتر از n باشد، اگر m یا  null n باشد،(DELETE (m، n هیچ کاری انجام نمی دهد.

      استثناء مجموعه

      جدول زیر، استثنائات Collections در PL / SQL و زمان رخ دادن آن ها را نشان می دهد:

      استثناء مجموعهدر موقعیت ها افزایش یافته است
      COLLECTION_IS_NULLشما سعی می کنید بر روی یک Collections در PL / SQL (مجموعه در PL / SQL) اتم اعداد کار کنید.
      NO_DATA_FOUNDیک عنصر عنصر را حذف می کند یا یک عنصر موجود در آرایه associative.
      SUBSCRIPT_BEYOND_COUNTیک زیرگروه بیش از تعداد عناصر در یک Collections در PL / SQL است.
      SUBSCRIPT_OUTSIDE_LIMITیک زیر فهرست خارج از محدوده مجاز است.
      VALUE_ERRORیک زیر نویس null است یا به نوع کلید قابل تبدیل نیست. این استثنا ممکن است رخ دهد اگر کلید به عنوان محدوده PLS_INTEGER تعریف شده باشد، و زیر خط خارج از این محدوده است.

      کلام آخر

      در این جلسه نشان دادیم که چگونه Collections در PL / SQL داده ها را به عنوان متغیرهای محلی ارجاع داده و دستکاری می کند. امیدواریم از آموزش مجموعه در PL / SQL لذت برده باشید.

      QR:  جلسه ۱۹ : Collections در PL / SQL
      به اشتراک بگذارید