در این قسمت از آموزش برنامه نویسی اوراکل بعد از آشنایی با معرفی Collection قصد داریم آموزش ایجاد Collection Types را یاد بگیریم.

در این بخش یاد خواهیم گرفت که به چه صورتی varray type و nested table type ایجاد کنیم.

ایجاد یک Varray Type

یک varray آبجکتی می باشد که مجموعه ای عناصر elements مرتب شده را ذخیره می کند و همه عناصر elements باید از یک type باشد و آن type باید از object type نوع داده ای built-in دیتابیس یا نوع داده ای که کاربر ایجاد کرده است user-defined باشد که هر element عضوی به یک index مرتبط و متصل است که موقعیت و position عضو و مقدار را در آرایه مشخص می کند و شما می توانید هر یک از عناصر و مقادیر element آرایه را بصورت کلی تغییر دهید.

شما می توانید یک varray type را از طریق دستور CREATE TYPE ایجاد کنید و هچنین در زمان ایجاد اندازه آرایه و maximum size آرایه و همجنین نوع داده های type آرایه که مقادیر از چه نوع داده ای data type باشد را مشخص کنید.

به عنوان مثال یک type به نام t_varray_address که ۳ عضو دارد که data type نوع داده ای VARCHAR2 می باشد.

برنامه نویسی اوراکل

هر نوع داده ای VARCHAR2 نشان می دهد که می خواهیم سه آدرس متفاوت برای هر مشتری درج کنیم. در دیتابیس اوراکل نسخه ۱۰g به بعد شما می توانید بیشترین اندازه عناصر elements یک آرایه را با استفاده از دستور ALTER TYPE تغییر دهید. در مثال زیر تعداد عناصر elements به عدد ۱۰ تغییر می دهد.

برنامه نویسی اوراکل

ویژگی CASCADE باعت می شود تعداد عناصر آرایه را افزایش می دهد.

ایجاد یک Nested Table Type

یک nested table مجموعه ای نامحدود از هر تعداد عنصر elements را ذخیره می کند. شما میتوانید هر عنصر و عضو elements را بصورت جداگانه و انفرادی در یک nested table عملیات insert, update, delete را انجام دهید. یک nested table محدودیتی در تعداد عناصر و المان در آرایه ندارد و نامحدود است و به عبارتی maximum size ندارد و شما میتوانید مقادیر element را به صورت جداگانه و اختیاری در یک nested table ذخیره کنید.

در این مثال یک type به نام t_address ایجاد می کنیم .

برنامه نویسی اوراکل

و در از این type یک nested table type به نام t_nested_table_address از type ایجاد شده با استفاده از دستور CREATE TYPE ایجاد می کنیم.

برنامه نویسی اوراکل

توجه داشته باشید در ایجاد یک nested table بیشترین اندازه آرایه maximum size را مشخص نمی کنید به دلیل ایتکه nested table هز تعداد elements که بخواهند می توانند در آرایه ذخیره کنند.

اطلاعات بیشتر در مورد ایجاد کالکشن