با عرض سلام و خوشامد خدمت کاربران محترم سایت آموزشی پی وی لرن. وتمام علاقه مندان که دوره کامل آموزش اوراکل را دنبال می کنند. در این پست آموزشی ما در مورد آرایه در PL / SQL بحث خواهیم کرد. زبان برنامه نویسی PL / SQL یک ساختار داده ای به نام VARRAY را فراهم می کند که می تواند یک مجموعه تکراری ثابت از عناصر یک نوع را ذخیره کند. یک varray برای ذخیره یک مجموعه دستورالعمل داده استفاده می شود، با این حال اغلب بهتر است از یک آرایه در PL / SQL به عنوان مجموعه ای از متغیرهای همان نوع استفاده کنید، در ادامه مباحث توضیحات بیشتری در مورد آرایه ها در PL / SQL ارائه کرده ایم با ما همراه باشید.
آرایه ها در PL / SQL شامل مکان های حافظه مجاور است. پایین ترین آدرس مربوط به اولین عنصر و بالاترین آدرس به آخرین عنصر آرایه ها در PL / SQL است.
آرایه در PL / SQL بخشی از داده های (نوع) مجموعه است و برای آرایه های متغیر اندازه مجموعه می باشد. ما مجموعه های دیگر مجموعه را در بخش بعد یعنی مجموعه ها در PL / SQL بررسی خواهیم کرد.
هر عنصر در varray دارای یک شاخص مرتبط با آن است. همچنین دارای حداکثر اندازه است که می تواند به صورت پویا تغییر کند.
نوع varray با بیانیه CREATE TYPE ایجاد می شود. شما باید حداکثر اندازه و نوع عناصر ذخیره شده در varray را مشخص کنید.
نحوه اصلی برای ایجاد یک نوع VARRAY در سطح طرح
1 | CREATE OR REPLACE TYPE varray_type_name IS VARRAY(n) of <element_type> |
جایی که
حداکثر اندازه varray را می توان با استفاده از عبارت ALTER TYPE تغییر داد.
برای مثال
1 2 3 4 | CREATE Or REPLACE TYPE namearray AS VARRAY(3) OF VARCHAR2(10); / Type created. |
نحوه اصلی برای ایجاد یک نوع VARRAY در یک بلوک PL / SQL به شرح زیر می باشد.
1 | TYPE varray_type_name IS VARRAY(n) of <element_type> |
برای مثال
1 2 | TYPE namearray IS VARRAY(5) OF VARCHAR2(10); Type grades IS VARRAY(5) OF INTEGER; |
اکنون به چند نمونه از این مفهوم بپردازیم.
برنامه زیر نشان دهنده استفاده از varrays است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | DECLARE type namesarray IS VARRAY(5) OF VARCHAR2(10); type grades IS VARRAY(5) OF INTEGER; names namesarray; marks grades; total integer; BEGIN names := namesarray('Kavita', 'Pritam', 'Ayan', 'Rishav', 'Aziz'); marks:= grades(98, 97, 78, 87, 92); total := names.count; dbms_output.put_line('Total '|| total || ' Students'); FOR i in 1 .. total LOOP dbms_output.put_line('Student: ' || names(i) || ' Marks: ' || marks(i)); END LOOP; END; / |
هنگامی که کد بالا در SQL فوری اجرا می شود، نتیجه زیر را تولید می کند.
1 2 3 4 5 6 7 8 | Total 5 Students Student: Kavita Marks: 98 Student: Pritam Marks: 97 Student: Ayan Marks: 78 Student: Rishav Marks: 87 Student: Aziz Marks: 92 PL/SQL procedure successfully completed. |
لطفا توجه داشته باشید.
عناصر یک varray همچنین می تواند٪ ROWTYPE هر جدول پایگاه داده یا٪ TYPE از هر جدول جدول پایگاه داده باشد. مثال زیر این مفهوم را نشان می دهد.
ما از جدول مشتریان ذخیره شده در پایگاه داده استفاده خواهیم کرد.
1 2 3 4 5 6 7 8 9 10 11 12 | Select * from customers; +----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Ramesh | 32 | Ahmedabad | 2000.00 | | 2 | Khilan | 25 | Delhi | 1500.00 | | 3 | kaushik | 23 | Kota | 2000.00 | | 4 | Chaitali | 25 | Mumbai | 6500.00 | | 5 | Hardik | 27 | Bhopal | 8500.00 | | 6 | Komal | 22 | MP | 4500.00 | +----+----------+-----+-----------+----------+ |
مثال زیر استفاده از مکان نما را انجام می دهد که در یک جلسه جداگانه به تفصیل مطالعه می شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | DECLARE CURSOR c_customers is SELECT name FROM customers; type c_list is varray (6) of customers.name%type; name_list c_list := c_list(); counter integer :=0; BEGIN FOR n IN c_customers LOOP counter := counter + 1; name_list.extend; name_list(counter) := n.name; dbms_output.put_line('Customer('||counter ||'):'||name_list(counter)); END LOOP; END; / |
هنگامی که کد بالا در SQL فوری اجرا می شود، نتیجه زیر را تولید می کند.
1 2 3 4 5 6 7 8 | Customer(1): Ramesh Customer(2): Khilan Customer(3): kaushik Customer(4): Chaitali Customer(5): Hardik Customer(6): Komal PL/SQL procedure successfully completed. |
در این پست آموزشی در مورد آرایه ها در PL / SQL یا آرایه در PL / SQL صحبت کردیم که امیدواریم راضی بوده باشید.