مجموعه های PL/SQL
Summarize this content to 400 words in Persian Lang بیایید روی مجموعههای PL/SQL و اصطلاحات مرتبط با مجموعهها در PL/SQL تمرکز کنیم.
در Oracle PL/SQL، مجموعه ها انواع داده های پیچیده ای هستند که به شما امکان می دهند چندین مقدار را در یک متغیر واحد مدیریت کنید. مجموعهها را میتوان برای ذخیره، پردازش و مدیریت دادهها به روشهای مختلف مورد استفاده قرار داد که آنها را در برنامهنویسی PL/SQL ضروری میسازد. در اینجا مفاهیم اصلی، اصطلاحات و انواع مجموعه ها در PL/SQL آمده است.
مجموعه های PL/SQL
مجموعههای PL/SQL مشابه آرایهها در سایر زبانهای برنامهنویسی هستند اما انعطافپذیری بیشتری را ارائه میدهند. سه نوع اصلی مجموعه در Oracle PL/SQL وجود دارد:
آرایه های انجمنی (شاخص بر اساس جداول)
جداول تو در تو
Varrays (آرایه با اندازه متغیر)
آرایه های انجمنی (شاخص بر اساس جداول)
تعریف:
آرایه انجمنی مجموعهای از جفتهای کلید-مقدار است که در آن کلید یک شاخص (اعم از عدد صحیح یا رشته) است و مقدار دادهای است که ذخیره میشود. به آن جدول index-by نیز می گویند.
اصطلاحات:
Index: کلیدی که برای شناسایی منحصر به فرد عناصر در آرایه انجمنی استفاده می شود. شاخص می تواند از نوع INTEGER یا VARCHAR باشد.
عنصر: مقدار ذخیره شده در مجموعه. هر عنصر با یک شاخص مرتبط است.
استفاده:
معمولاً برای جستجوهای سریع که در آن کلیدها به هم پیوسته نیستند (یعنی می توانید بین شاخص ها فاصله داشته باشید) استفاده می شود.
مثال:
اعلام کنید
TYPE assoc_array IS TABLE OF VARCHAR2(100) INDEX BY PLS_INTEGER.
my_array assoc_array;
شروع کنید
my_array(1) := 'اول';
my_array(2) := 'دوم';
DBMS_OUTPUT.PUT_LINE(my_array(1)); — خروجی: اول
پایان
جداول تو در تو
تعریف:
جدول تودرتو مجموعه مرتب شده ای از عناصر است که هر عنصر می تواند یک مقدار اسکالر، یک شی یا مجموعه دیگری باشد. این شبیه به آرایه در سایر زبان های برنامه نویسی است، اما می تواند به صورت پویا رشد کند و در حافظه ذخیره می شود.
اصطلاحات:
عنصر: داده های ذخیره شده در جدول تودرتو که می تواند هر نوع داده ای باشد.
نوع مجموعه: تعریف نوع داده برای جدول تودرتو. با TABLE OF کلمه کلیدی تعریف شده است.
استفاده:
جداول تودرتو اغلب برای ذخیره مجموعه ای از داده ها استفاده می شوند و زمانی که به تغییر اندازه پویا نیاز دارید مفید هستند.
مثال:
اعلام کنید
TYPE nested_table_type IS TABLE OF VARCHAR2(100);
my_nested_table nested_table_type := nested_table_type('Apple', 'Banana', 'Cherry');
شروع کنید
DBMS_OUTPUT.PUT_LINE(my_nested_table(1)); — خروجی: اپل
پایان
Varrays (آرایه با اندازه متغیر)
تعریف:
varray (مخفف آرایه با اندازه متغیر) مجموعه مرتب شده ای از عناصر است که دارای حداکثر اندازه از پیش تعریف شده است. Varray ها معمولاً زمانی استفاده می شوند که اندازه مجموعه را از قبل بدانید، و کارایی حافظه بهتری را برای مجموعه های کوچکتر و با اندازه ثابت ارائه می دهند.
اصطلاحات:
حداکثر اندازه: حداکثر تعداد عناصری که می توان در یک varray ذخیره کرد.
عنصر: داده های ذخیره شده در varray که می تواند از هر نوع داده ای باشد.
استفاده:
وقتی تعداد عناصر کم و ثابت باشد، Varrayها بیشترین کاربرد را دارند. آنها را می توان در جداول پایگاه داده نیز ذخیره کرد.
مثال:
اعلام کنید
TYPE varray_type IS VARRAY(5) OF VARCHAR2(100);
my_varray varray_type := varray_type('One', 'Two', 'Three');
شروع کنید
DBMS_OUTPUT.PUT_LINE(my_varray(1)); — خروجی: یک
پایان
اصطلاحات رایج مجموعه PL/SQL
در زیر برخی از اصطلاحات و مفاهیم مهمی که با مجموعه ها در PL/SQL مرتبط هستند آورده شده است.
انواع مجموعه
Declared Types: در PL/SQL، مجموعه ها اغلب به عنوان انواع سفارشی با استفاده از کلمه کلیدی TYPE اعلان می شوند. این به شما امکان می دهد مجموعه هایی از انواع داده های خاص را تعریف کنید (به عنوان مثال، TABLE OF، VARRAY).
عملیات انبوه:
مجموعههای PL/SQL معمولاً با عملیاتهای انبوه مانند BULK COLLECT و FORALL استفاده میشوند که امکان پردازش کارآمد ردیفهای متعدد داده را در یک عملیات واحد فراهم میکند.
جمع آوری انبوه: یک ویژگی PL/SQL که امکان واکشی چندین ردیف از یک کوئری SQL به یک مجموعه را در یک لحظه فراهم می کند و عملکرد را به طور قابل توجهی بهبود می بخشد.
FORALL: یک ویژگی PL/SQL که امکان پردازش کارآمد عملیات DML (زبان دستکاری داده ها) را در یک مجموعه فراهم می کند، و باعث کاهش سوئیچ زمینه بین موتورهای PL/SQL و SQL می شود.
راه اندازی مجموعه ها
مقداردهی اولیه: مجموعه ها را می توان به صورت صریح یا ضمنی مقدار دهی اولیه کرد.
Explicit Initialization: زمانی که مجموعه ای را در همان عبارت اعلام و مقداردهی اولیه می کنید.
Initialization ضمنی: زمانی که مجموعه ای را بدون مقداردهی اولیه آن اعلام می کنید و سپس مقادیری را در کد بعدی به آن اختصاص می دهید.
روش های جمع آوری:
مجموعههای PL/SQL روشهای داخلی را ارائه میکنند که به شما امکان میدهند مجموعهها را به طور مؤثر دستکاری کنید. برخی از روش های کلیدی عبارتند از:
COUNT: تعداد عناصر یک مجموعه را برمیگرداند.
EXTEND: یک یا چند عنصر را به مجموعه اضافه می کند.
TRIM: یک یا چند عنصر را از انتهای مجموعه حذف می کند.
DELETE: عناصر یک مجموعه را حذف می کند.
عناصر پوچ:
یک مجموعه میتواند دارای عناصر NULL باشد که مکانهایی برای دادههایی هستند که ممکن است در دسترس نباشند. مدیریت مقادیر NULL به طور مناسب برای اطمینان از عملیات جمع آوری صحیح ضروری است.
انواع مجموعه تودرتو:
شما می توانید ساختارهای مجموعه پیچیده ای را با استفاده از مجموعه های درون مجموعه ایجاد کنید. به عنوان مثال، یک جدول تودرتو می تواند شامل varray ها باشد و یک آرایه انجمنی می تواند شامل جداول تو در تو باشد.
محدوده مجموعه ها:
مجموعه های محلی: که در یک بلوک یا رویه PL/SQL تعریف می شوند، دامنه آنها به بلوک محدود می شود.
مجموعههای جهانی: در سطح بسته تعریف میشوند و آنها را برای همه رویهها/عملکردهای بسته قابل دسترسی میسازد.
مثال مجموعه PL/SQL: جمع آوری انبوه با جدول تودرتو
اعلام کنید
TYPE nested_table_type IS TABLE OF VARCHAR2(100);
TYPE assoc_array IS TABLE OF nested_table_type INDEX BY PLS_INTEGER.
my_array assoc_array;
my_nested_table nested_table_type;
شروع کنید
– مقادیر را به جدول تودرتو اختصاص دهید
my_nested_table := nested_table_type('Apple', 'Banana');
– جدول تودرتو را به آرایه انجمنی اختصاص دهید
my_array(1) := my_nested_table;
DBMS_OUTPUT.PUT_LINE(my_array(1)(1)); — خروجی: اپل
پایان
خلاصه اصطلاحات مجموعه های PL/SQL
نتیجه گیری
مجموعههای PL/SQL روشی کارآمد برای مدیریت و دستکاری مقادیر متعدد در یک متغیر فراهم میکنند. با درک انواع مختلف مجموعهها (آرایههای انجمنی، جداول تودرتو، و متغیرها) و اصطلاحات مرتبط با آنها، میتوانید به طور مؤثر از آنها برای موارد مختلف استفاده کنید، از جمله عملیات دادههای انبوه، مدیریت مجموعه پویا، و سناریوهای پیچیدهتر پردازش داده در PL/SQL.
بیایید روی مجموعههای PL/SQL و اصطلاحات مرتبط با مجموعهها در PL/SQL تمرکز کنیم.
در Oracle PL/SQL، مجموعه ها انواع داده های پیچیده ای هستند که به شما امکان می دهند چندین مقدار را در یک متغیر واحد مدیریت کنید. مجموعهها را میتوان برای ذخیره، پردازش و مدیریت دادهها به روشهای مختلف مورد استفاده قرار داد که آنها را در برنامهنویسی PL/SQL ضروری میسازد. در اینجا مفاهیم اصلی، اصطلاحات و انواع مجموعه ها در PL/SQL آمده است.
مجموعه های PL/SQL
مجموعههای PL/SQL مشابه آرایهها در سایر زبانهای برنامهنویسی هستند اما انعطافپذیری بیشتری را ارائه میدهند. سه نوع اصلی مجموعه در Oracle PL/SQL وجود دارد:
-
آرایه های انجمنی (شاخص بر اساس جداول)
-
جداول تو در تو
-
Varrays (آرایه با اندازه متغیر)
- آرایه های انجمنی (شاخص بر اساس جداول)
تعریف:
آرایه انجمنی مجموعهای از جفتهای کلید-مقدار است که در آن کلید یک شاخص (اعم از عدد صحیح یا رشته) است و مقدار دادهای است که ذخیره میشود. به آن جدول index-by نیز می گویند.
اصطلاحات:
Index: کلیدی که برای شناسایی منحصر به فرد عناصر در آرایه انجمنی استفاده می شود. شاخص می تواند از نوع INTEGER یا VARCHAR باشد.
عنصر: مقدار ذخیره شده در مجموعه. هر عنصر با یک شاخص مرتبط است.
استفاده:
معمولاً برای جستجوهای سریع که در آن کلیدها به هم پیوسته نیستند (یعنی می توانید بین شاخص ها فاصله داشته باشید) استفاده می شود.
مثال:
اعلام کنید
TYPE assoc_array IS TABLE OF VARCHAR2(100) INDEX BY PLS_INTEGER.
my_array assoc_array;
شروع کنید
my_array(1) := 'اول';
my_array(2) := 'دوم';
DBMS_OUTPUT.PUT_LINE(my_array(1)); — خروجی: اول
پایان
- جداول تو در تو
تعریف:
جدول تودرتو مجموعه مرتب شده ای از عناصر است که هر عنصر می تواند یک مقدار اسکالر، یک شی یا مجموعه دیگری باشد. این شبیه به آرایه در سایر زبان های برنامه نویسی است، اما می تواند به صورت پویا رشد کند و در حافظه ذخیره می شود.
اصطلاحات:
عنصر: داده های ذخیره شده در جدول تودرتو که می تواند هر نوع داده ای باشد.
نوع مجموعه: تعریف نوع داده برای جدول تودرتو. با TABLE OF کلمه کلیدی تعریف شده است.
استفاده:
جداول تودرتو اغلب برای ذخیره مجموعه ای از داده ها استفاده می شوند و زمانی که به تغییر اندازه پویا نیاز دارید مفید هستند.
مثال:
اعلام کنید
TYPE nested_table_type IS TABLE OF VARCHAR2(100);
my_nested_table nested_table_type := nested_table_type('Apple', 'Banana', 'Cherry');
شروع کنید
DBMS_OUTPUT.PUT_LINE(my_nested_table(1)); — خروجی: اپل
پایان
- Varrays (آرایه با اندازه متغیر)
تعریف:
varray (مخفف آرایه با اندازه متغیر) مجموعه مرتب شده ای از عناصر است که دارای حداکثر اندازه از پیش تعریف شده است. Varray ها معمولاً زمانی استفاده می شوند که اندازه مجموعه را از قبل بدانید، و کارایی حافظه بهتری را برای مجموعه های کوچکتر و با اندازه ثابت ارائه می دهند.
اصطلاحات:
حداکثر اندازه: حداکثر تعداد عناصری که می توان در یک varray ذخیره کرد.
عنصر: داده های ذخیره شده در varray که می تواند از هر نوع داده ای باشد.
استفاده:
وقتی تعداد عناصر کم و ثابت باشد، Varrayها بیشترین کاربرد را دارند. آنها را می توان در جداول پایگاه داده نیز ذخیره کرد.
مثال:
اعلام کنید
TYPE varray_type IS VARRAY(5) OF VARCHAR2(100);
my_varray varray_type := varray_type('One', 'Two', 'Three');
شروع کنید
DBMS_OUTPUT.PUT_LINE(my_varray(1)); — خروجی: یک
پایان
اصطلاحات رایج مجموعه PL/SQL
در زیر برخی از اصطلاحات و مفاهیم مهمی که با مجموعه ها در PL/SQL مرتبط هستند آورده شده است.
- انواع مجموعه
Declared Types: در PL/SQL، مجموعه ها اغلب به عنوان انواع سفارشی با استفاده از کلمه کلیدی TYPE اعلان می شوند. این به شما امکان می دهد مجموعه هایی از انواع داده های خاص را تعریف کنید (به عنوان مثال، TABLE OF، VARRAY).
- عملیات انبوه:
مجموعههای PL/SQL معمولاً با عملیاتهای انبوه مانند BULK COLLECT و FORALL استفاده میشوند که امکان پردازش کارآمد ردیفهای متعدد داده را در یک عملیات واحد فراهم میکند.
جمع آوری انبوه: یک ویژگی PL/SQL که امکان واکشی چندین ردیف از یک کوئری SQL به یک مجموعه را در یک لحظه فراهم می کند و عملکرد را به طور قابل توجهی بهبود می بخشد.
FORALL: یک ویژگی PL/SQL که امکان پردازش کارآمد عملیات DML (زبان دستکاری داده ها) را در یک مجموعه فراهم می کند، و باعث کاهش سوئیچ زمینه بین موتورهای PL/SQL و SQL می شود.
- راه اندازی مجموعه ها
مقداردهی اولیه: مجموعه ها را می توان به صورت صریح یا ضمنی مقدار دهی اولیه کرد.
Explicit Initialization: زمانی که مجموعه ای را در همان عبارت اعلام و مقداردهی اولیه می کنید.
Initialization ضمنی: زمانی که مجموعه ای را بدون مقداردهی اولیه آن اعلام می کنید و سپس مقادیری را در کد بعدی به آن اختصاص می دهید.
- روش های جمع آوری:
مجموعههای PL/SQL روشهای داخلی را ارائه میکنند که به شما امکان میدهند مجموعهها را به طور مؤثر دستکاری کنید. برخی از روش های کلیدی عبارتند از:
COUNT: تعداد عناصر یک مجموعه را برمیگرداند.
EXTEND: یک یا چند عنصر را به مجموعه اضافه می کند.
TRIM: یک یا چند عنصر را از انتهای مجموعه حذف می کند.
DELETE: عناصر یک مجموعه را حذف می کند.
- عناصر پوچ:
یک مجموعه میتواند دارای عناصر NULL باشد که مکانهایی برای دادههایی هستند که ممکن است در دسترس نباشند. مدیریت مقادیر NULL به طور مناسب برای اطمینان از عملیات جمع آوری صحیح ضروری است.
- انواع مجموعه تودرتو:
شما می توانید ساختارهای مجموعه پیچیده ای را با استفاده از مجموعه های درون مجموعه ایجاد کنید. به عنوان مثال، یک جدول تودرتو می تواند شامل varray ها باشد و یک آرایه انجمنی می تواند شامل جداول تو در تو باشد.
- محدوده مجموعه ها:
مجموعه های محلی: که در یک بلوک یا رویه PL/SQL تعریف می شوند، دامنه آنها به بلوک محدود می شود.
مجموعههای جهانی: در سطح بسته تعریف میشوند و آنها را برای همه رویهها/عملکردهای بسته قابل دسترسی میسازد.
مثال مجموعه PL/SQL: جمع آوری انبوه با جدول تودرتو
اعلام کنید
TYPE nested_table_type IS TABLE OF VARCHAR2(100);
TYPE assoc_array IS TABLE OF nested_table_type INDEX BY PLS_INTEGER.
my_array assoc_array;
my_nested_table nested_table_type;
شروع کنید
– مقادیر را به جدول تودرتو اختصاص دهید
my_nested_table := nested_table_type('Apple', 'Banana');
– جدول تودرتو را به آرایه انجمنی اختصاص دهید
my_array(1) := my_nested_table;
DBMS_OUTPUT.PUT_LINE(my_array(1)(1)); — خروجی: اپل
پایان
خلاصه اصطلاحات مجموعه های PL/SQL
نتیجه گیری
مجموعههای PL/SQL روشی کارآمد برای مدیریت و دستکاری مقادیر متعدد در یک متغیر فراهم میکنند. با درک انواع مختلف مجموعهها (آرایههای انجمنی، جداول تودرتو، و متغیرها) و اصطلاحات مرتبط با آنها، میتوانید به طور مؤثر از آنها برای موارد مختلف استفاده کنید، از جمله عملیات دادههای انبوه، مدیریت مجموعه پویا، و سناریوهای پیچیدهتر پردازش داده در PL/SQL.