در این قسمت از آموزش برنامه نویسی اوراکل بعد از آموزش ویرایش Elements یک Collection قصد داریم آموزش Convert Collections را یاد بگیریم.

استفاده از Map Method برای مقایسه محتوی داده ای Nested Tables

شما می توانید محتوی داده ای nested table را محتوی داده ای nested table دیگری مقایسه کنید یا به عبارتی می توانید دو جدول nested table را با هم مقایسه کنید. اما جدول nested table فقط در صورتی مقایسه می شوند شرایط زیر را هر دو جدول nested table داشته باشد :

  • هر دو جدول باید دارای type یکسان باشد.
  • هر دو جدول باید تعداد رکوردهای آن با هم برابر باشد.
  • تمامی عناصر elements جدول بایستی با هم برابر باشد و همان مقادیر باشد.

اگر عناصر elements یک جدول nested table از type نوع داده ای built-in دیتابیس مانند NUMBER و VARCHAR2 و … باشد بنابراین دیتابیس بصورت خودکار و اتومات محتوی و داده ای دو جدول nested tables را با هم مقایسه می کند.

اما اگر عناصر elements یک Object Type شامل نوع داده ای user-defined باشد برای مقایسه object های type بایستی از map function استفاده کنید.

با یک مثال شروع می کنیم و type به نام t_address2 ایجاد می کنیم که شامل map function به نام ()get_string می باشد که این تابع ()get_string مقداری با نوع داده ای VARCHAR2 در خروجی می دهد که شامل مقادیر zip , state , city و street می باشد.

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

استفاده از تابع ()CAST برای تبدیل Convert Collections از یک type به type دیگر

شما می توانید با استفاده از تابع ()CAST برای تبدیل Convert Collections از یک type به type دیگر انجام دهید. در این بخش یاد خواهید گرفت که با استفاده از تابع ()CAST یک آرایه varray را به آرایه nested table تبدیل convert کنید و البته برعکس این عملیات هم امکان پذیر است.

استفاده از تابع ()CAST برای تبدیل آرایه Varray به Nested Table

با مثال شروع می کنیم و یک جدولی به نام customers_with_varray2 ایجاد می کنیم و که ستون addresses دارد که data type نوع داده ای آن از یک آرایه varray type به نام t_varray_address2 ایحاد شده است و پس از ایجاد جدول یک رکورد در این جدول اضافه می کنیم و اما در ستون addresses دو مقدار از Constructor درج می کنیم و در واقع مشتری دو آدرس متفاوت دارد.

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

در ادامه مثال با استفاده از تابع ()CAST مقادیرخروجی ستون addresses که از نوع آرایه varray می باشد را به آرایه نوع nested table تبدیل می کند.

البته به این نکته توجه داشته باشید که constructor که در آرایه varray می باشد دقیقا همان روال باید در constructor آرایه nested table باشد تا این عملیات با موفقیت انجام شود.

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

استفاده از تابع ()CAST برای تبدیل آرایه Nested Table به Varray

در ادامه مثال با استفاده از تابع ()CAST مقادیرخروجی ستون addresses که از نوع آرایه Nested Table می باشد را به آرایه نوع Varray تبدیل می کند.

در این convert ستون که از نوع آرایه Nested Table می باشد به نوع آرایه Varray تبدیل شده و یه نام جدید T_VARRAY_ADDRESS2 تبدیل می شود.

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

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